码迷,mamicode.com
首页 > 编程语言 > 详细

C++成员初始化列表

时间:2015-08-25 16:45:29      阅读:147      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!