总结1:
- 当类声明中包含纯虚函数,则不能创建该类的对象。纯虚函数只能当基类且不能创建对象!不想用纯虚函数,可以参考下面:
virtual Student& reset(char* c){} ;
创建一个空虚函数- 基类指针或引用可以指向派生类指针或引用,所以可以创建基类指针数组,然后选择使用基类或是派生类。
(假设Student 为基类,Female为派生类) Student* s [LIMIT]; s[i] = new Female(c1,c2,n,c3) ; 将基类指针分配到一个Female类对象,调用Female类构造函数创建新类对象。
- 基类和派生类的析构函数如下:
类声明(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(),因为有虚析构函数的话,会先调用派生类析构函数,再调用基类。
- 派生类对象和主程序不能访问基类的私有成员,如有必要基类写成员函数返回私有成员。
- 在派生类对象的方法里使用基类成员函数(如果没有指针或引用)用作用域解析运算符。
- 主程序里如果用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就对了
- 将数组清空:
memset(c3,'\0',sizeof(c3));
在cstring头文件中,(数组名,填充数据,填充个数)
C++类继承部分
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。