编写继承类的复制构造函数和构造函数
2016-03-14 21:55
399 查看
当基类存在私有成员时,应该如何编写继承类的复制构造函数呢?
方法是在复制构造函数的初始化成员列表中调用基类的复制构造函数。
当基类不存在默认构造函数时,继承类构造函数必须显式调用基类构造函数,否则会调用基类的默认构造函数,最终会出现“找不到构造方法”的编译错误。
如下是错误的:
方法是在复制构造函数的初始化成员列表中调用基类的复制构造函数。
class Base{ private: int i; public: Base(int _i) :i(_i){} }; class Derived:public Base{ public: Derived() :Base(0), j(0){} Derived(const Derived &obj) :Base(obj), j(obj.j){} private: int j; };
当基类不存在默认构造函数时,继承类构造函数必须显式调用基类构造函数,否则会调用基类的默认构造函数,最终会出现“找不到构造方法”的编译错误。
如下是错误的:
class Base{ private: int i; public: Base(int _i) :i(_i){} }; class Derived :public Base{ public: Derived(int x,int y) :j(y){} //错误 Derived(const Derived &obj) :Base(obj), j(obj.j){} private: int j; };
相关文章推荐
- Problem F: C语言习题 不等长字符串排序
- leetcode 30. Substring with Concatenation of All Words
- 分布式锁:两阶段提交协议(two phase commit protocol,2PC)
- Swing 设置组合快捷键
- python 字典排序
- Spring MVC 参数的绑定方法
- 初次使用cocoapods注意事项
- sqlserver 游标
- 请求报文(request message)
- java邮件发送--JavaMail
- [BZOJ1004][HNOI2008]Cards
- 比较指针与数组的特性
- moon Maven
- Combination Sum II
- coreboot学习3:启动流程跟踪之bootblock阶段
- iOS 基于MVVM设计模式练习UITableView使用 —— HERO博客
- stm32通过485接串口做IAP
- 电子商务网站测试经验总结
- Java 多线程:Lock 关键字
- jvm虚拟机类加载机制