派生类的构造函数
2016-03-23 21:56
239 查看
#include <iostream> using namespace std; class 老子 { // 成员:很多行代码, public: int X; }; class 小子 : public 老子 { // 新的成员, public: int Y; }; class Base1 { public: Base1(int i) { b1 = i; cout << "Base1的构造函数被调用," << endl; } void Print() { cout << b1 << endl; } private: int b1; }; class Base2 { public: Base2(int i) { b2 = i; cout << "Base2的构造函数被调用," << endl; } void Print() { cout << b2 << endl; } private: int b2; }; class Base3 { public: Base3(int i) { b3 = i; cout << "Base3的构造函数被调用," << endl; } void Print() { cout << b3 << endl; } private: int b3; }; class Member // 这个是小子里边的成员对象, { public: Member(int i) { m = i; cout << "Member的构造函数被调用," << endl; } int GetM() { return m; } private: int m; }; class Derived : public Base2, public Base1, public Base3 { public: Derived(int i, int j, int k, int l); void Print(); private: int d; Member mem; }; Derived::Derived(int i, int j, int k, int l): Base1(i),Base2(j),Base3(k), mem(k) { d = l; cout << "Derived的构造函数被调用。" << endl; } void Derived::Print() { Base1::Print(); Base2::Print(); Base3::Print(); cout << mem.GetM() << endl; cout << d << endl; } // 派生类的构造函数先执行基类的构造函数,再执行成员对象的构造函数,再执行派生类的构造函数, int main() { 小子 a; // a是一个小子,创建小子对象,先创建/构造老子!再构建小子里边的成员对象,最后再构造小子, a.X = 1; a.Y = 2; Derived obj(1,2,3,4); // obj就是一个对象,原来是没有的,现在有了, obj.Print(); return 0; }
相关文章推荐
- Java的一些入门总结
- WebView与js交互注意事项
- linux目录作用详解(超详细,树状排版)
- Linux设备驱动之Ioctl控制
- linux多线程-----同步机制(互斥量、读写锁、条件变量)
- linux分享六:nohup与&,守护进程
- Android APP性能优化十大方案
- Hibernate缓存
- Method Swizzling、AOP 面向切片编程
- OC-Foundation框架
- 网络编程(一)
- CoordinatorLayout 、FloatingActionButton 、Snackbar、DrawerLayout和NavigationView结合使用demo
- happens-before
- myeclipse 编码后无法保存 save could not be completed.
- TCP状态图的理解以及TIME_WAIT状态的作用
- Simple MVVM
- HDU 1087
- Dijkstra求最短路径
- NOIp 2011 瑞士轮
- 【java算法】二叉树遍历、求叶子数--用递归的方法