多态与虚函数3
2016-05-20 14:30
429 查看
#include <iostream> using namespace std; class Y { private: int i; public: Y(){} Y(int ii) : i(ii) {} }; class X : public Y // 这个是继承,在继承的时候,X 类中含有的函数与Y 函数相同,则将Y类的此函数屏蔽掉,无论参数是否相同,只要函数一样就将其屏蔽掉, { private: int i; float f; char c; char* s; public: X() : Y(10), i(7), f(1.6), c('b'), s("xiao") // 在冒号后面是进行初始化,是初始化列表, { cout << "X()" << endl; } }; class Base1 { public: Base1(int) // 构造函数不能是虚的, { cout << "Base1 constructor\n"; } virtual ~Base1() // 析构函数必须是虚的,调用此析构函数的时候调用的是所有被重写的析构函数, { cout << "Base1 destructor\n"; } }; class Member1 { public: Member1(int) { cout << "Member1 constructor\n"; } ~Member1() { cout << "Member1 destructor\n"; } }; class Member2 { public: Member2(int) { cout << "Member2 constructor\n"; } ~Member2() { cout << "Member2 destructor\n"; } }; class Member3 { public: Member3(int) { cout << "Member3 constructor\n"; } ~Member3() { cout << "Member3 destructor\n"; } }; class Member4 { public: Member4(int) { cout << "Member4 constructor\n"; } ~Member4() { cout << "Member4 destructor\n"; } }; class Derived1 : public Base1 { Member1 m1; Member2 m2; public: Derived1(int) : m1(1), m2(2), Base1(3) { cout << "Derived1 constructor\n"; } ~Derived1() { cout << "Derived1 destructor\n"; } }; class Derived2 : public Derived1 { Member3 m3; Member4 m4; public: Derived2() : m4(1), m3(2), Derived1(4) // 调用此类的构造函数的时候先要执行初始化列表,要先执行继承的构造函数再执行m3 和 m4 { cout << "Derived2 constructor\n"; } ~Derived2() { cout << "Derived2 destructor\n"; } }; int main() { //X x; /*Derived2 d2;*/ Base1* b = new Derived2(); delete b; return 0; }
相关文章推荐
- 《剑指offer》——正则表达式匹配
- mysql行级锁
- 迭代器模式(实际运用比较少)
- 每日一linux命令(1)-------ls
- Spring+Mybatis+MySql+Maven 简单的事务管理案例
- java8 class::method lambda
- 通用DAO之MyBatis封装,封装通用的增删改查(一)
- GPS判断有没有开启并且请求打开GPS的代码(应用没有授权GPS也会有效)
- 多线程编程-NSThread
- NSRunLoop详解
- 实习入职第二天:onAttachedToWindow () 和 onDetachedFromWindow ()
- 码农只能干到30岁的说法可信吗?
- 矩阵的快速幂
- 怎么写inf cab makecab
- 一步一步 搞定RSA(公钥、私钥)
- iOS学习之—— UIVisualEffectView
- gnocchi-采样数据存储流程分析(002)--数据的异步统计
- JavaWeb项目使用BlazeDS整合Flex进行RemoteObject数据交互
- Linux下使用yum安装软件
- 实验3:白盒测试