私有继承的一个例子,帮助加强理解
2012-03-10 11:09
253 查看
B私有继承A 是指,B is-implement-terms-of A, B是根据A实现的。
default constructor A...0
assignment constructor...10
default constructor B...1
10
destructor B...1
destruct A...10
destruct A...0
#include <iostream> using namespace std; class A{ public: A():_a(0){cout << "default constructor A..." << _a << endl;} A(int a):_a(a){cout << "assignment constructor..." << _a << endl;} ~A(){cout << "destruct A..." << _a << endl;} void display(ostream& os = cout){os << _a << endl;}//默认输出流为cout private: int _a; }; class B:private A{//私有继承后public->private,private->不可见 public: void disp(){display();}//A::_a = 10;不会通过 B():A(10),_b(1){cout << "default constructor B..." << _b << endl;} //默认情况下先调用A的默认构造函数,但是我们可以显示指定B的构造函数只调用A的赋值构造函数 ~B(){cout << "destructor B..." << _b << endl;} private: int _b; }; int main(){ A a;//调用默认构造函数 B b; //先调用A的构造函数,再调用B的 b.disp();//私有继承后A::display()成为B的私有成员函数,通过开辟一个公有函数间接调用 }运行结果:
default constructor A...0
assignment constructor...10
default constructor B...1
10
destructor B...1
destruct A...10
destruct A...0
相关文章推荐
- 一个例子帮助理解正则表达式
- 一个帮助你理解prototype中Class.create()方法的例子
- 一个Java小程序,帮助理解Java继承中的初始化过程
- 一个帮助我们理解for循环的好例子
- 一个简单的例子理解在JS原型继承中原型链是如何运作的
- 关于私有继承的一个小例子
- 一个例子对于类继承和关键字“this”的理解
- 帮助理解c#中委托+事件的一个例子
- 一个例子,理解java中的继承(来自《疯狂java讲义》)
- 关于继承和多态的一个简单例子
- 通过一个小例子来简单理解C语言中的内存空间管理
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- 一个经典例子让你彻彻底底理解java回调机制
- java继承的一个小例子
- 一个例子理解C#位移
- 一个经典例子让你彻彻底底理解java回调机制
- 几个例子帮助你理解JavaScript this的用法
- C++多态公有继承的一个例子