首页 > 编程语言 > 详细

C++成员初始化列表

时间:2015-08-25 16:42:19      阅读:251      评论:0      收藏:0      [点我收藏+]
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的初始化列表里进行初始化。
所以在派生类的初始化列表里面,只会进行以下的初始化操作:
派生类的初始化列表:基类的初始化, 派生类本身数据成员的初始化。


版权声明:本文为博主原创文章,未经博主允许不得转载。

C++成员初始化列表

原文:http://blog.csdn.net/king__moving/article/details/47977395

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!