您的位置:首页 > 编程语言 > C语言/C++

C++成员初始化列表

2015-08-25 15:17 429 查看
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的初始化列表里进行初始化。

所以在派生类的初始化列表里面,只会进行以下的初始化操作:

派生类的初始化列表:基类的初始化, 派生类本身数据成员的初始化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: