电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C++在单继承、多继承

C++在单继承、多继承_第1页
1/9
C++在单继承、多继承_第2页
2/9
C++在单继承、多继承_第3页
3/9
一、本文目的与说明 1. 本文目的:理清在各种继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容。 2. 说明:虽然复制构造函数属于构造函数的一种,有共同的地方,但是也具有一定的特殊性,所以在总结它的性质时将它单独列出来了。 3. 单继承、多继承、虚继承,既然都属于继承,那么虽然有一定的区别,但还是相同点比较多。如果放在一块讲,但为了将内容制作成递进的,就分开了,对相同点进行重复,(大量的复制粘贴哈),但在不同点进行了标注。 注意:三块内容是逐步递进的 如果你懂虚函数,那么单继承和多继承那块你就可以不看; 如果你懂多继承,那单继承你就不要看了,至于虚继承就等你懂虚继承再回来看吧; 如果你只懂单继承,那你就只看单继承就好。 二、基本知识 1. 对于一个空类,例如; [cpp] view plaincopyprint? 1. class EmptyClass{}; 虽然你没有声明任何函数,但是编译器会自动为你提供上面这四个方法。 [cpp] view plaincopyprint? 1. class EmptyClass { 2. public: 3. EmptyClass(); // 默认构造函数 4. EmptyClass(const EmptyClass &rhs); // 复制构造函数 5. ~ EmptyClass(); // 析构函数 6. EmptyClass& operator=(const EmptyClass &rhs); // 赋值运算符 7. } 对于这四个方法的任何一个,你的类如果没有声明,那么编译器就会自动为你对应的提供一个默认的。(在《C++ primer》中,这个编译器自动提供的版本叫做"合成的***",例如合成的复制构造函数)当然如果你显式声明了,编译器就不会再提供相应的方法。 2. 合成的默认构造函数执行内容:如果有父类,就先调用父类的默认构造函数。 2. 合成的复制构造函数执行内容:使用参数中的对象,构造出一个新的对象。 3. 合成的赋值操作符执行内容:使用参数中的对象,使用参数对象的非 static 成员依次对目标对象的成员赋值。注意:在赋值操作符执行之前,目标对象已经存在。 4. 在继承体系中,要将基类(或称为父类)的析构函数,声明为 virtual 方法(即虚函数)。 5. 子类中包含父类的成员。即子类有两个部分组成,父类部分和子类自己定义的部分。 6. 如果在子类中显式调用父类的构造函数,只能在构造函数的初始化列表中调用,并且只能调用其直接父类的。 7. 在多重继承时,按照基类继承列表中声明的顺序初始化父类。 8. 在虚继承中,虚基类的初始化 早于 非虚基类,...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C++在单继承、多继承

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部