C++类继承部分

总结1:

  1. 当类声明中包含纯虚函数,则不能创建该类的对象。纯虚函数只能当基类且不能创建对象!不想用纯虚函数,可以参考下面:
    virtual Student& reset(char* c){} ;
    创建一个空虚函数
  2. 基类指针或引用可以指向派生类指针或引用,所以可以创建基类指针数组,然后选择使用基类或是派生类。
(假设Student 为基类,Female为派生类)
Student* s [LIMIT]; 
s[i] = new Female(c1,c2,n,c3) ; 
将基类指针分配到一个Female类对象,调用Female类构造函数创建新类对象。
  1. 基类和派生类的析构函数如下:
类声明(Student是基类,Female是派生类)
virtual ~Student();
virtual ~Female();

源代码文件中:
Student::~Student()
{
  cout<<"Student class object delete\n";
  delete name;
  delete gender;
}

Female::~Female()
{
 cout<<"Female object delete\n";
 delete book;
}

不用在~Female中调用~Student(),因为有虚析构函数的话,会先调用派生类析构函数,再调用基类。

  1. 派生类对象和主程序不能访问基类的私有成员,如有必要基类写成员函数返回私有成员。
  2. 在派生类对象的方法里使用基类成员函数(如果没有指针或引用)用作用域解析运算符。
  3. 主程序里如果用char* c,不能用cin.get等来输入你想要的字符串。建议换数组或string,但string与构造函数参数对不上.
    ps. C++11 char* c算是非常量字符指针,
char * p = "hi i am jeff"; 是对的

char * p ;
p = "hi i am Jeff" ;是错的
该为const char* p就对了
  1. 将数组清空:
    memset(c3,'\0',sizeof(c3));
    在cstring头文件中,(数组名,填充数据,填充个数)

你可能感兴趣的:(C++类继承部分)