C++成员初始化列表

来源:互联网 发布:eclipse java汉化教程 编辑:程序博客网 时间:2024/05/21 00:20
class A{public:A(){cout << "class A default constructor called" << endl;a = 0;}A(int param){cout << "class A constructor called" << endl;a = param;}~A(){}virtual void FunctionA(){cout << "classA" << endl;}int a;private:};class B:public A{public:B(){}B(int m):b(m),a(m){cout <<"class B constructor called" << endl;}~B(){}virtual void FunctionA(){cout << "classA" << endl;}void FunctionB(){cout << b << endl;}private:int b;};int main(){  A* pA = new B(10);  while(1);  return 0;}
 
这里编译器会有一个警告,意思是说a不是B的成员或者基类。 a是不能放在派生类B的初始化列表里进行初始化。
所以在派生类的初始化列表里面,只会进行以下的初始化操作:
派生类的初始化列表:基类的初始化, 派生类本身数据成员的初始化。


0 0
原创粉丝点击