总结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++类继承部分
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...