c++的拷贝构造函数的应用场景

c++中的构造函数一般分为这三种,普通的构造函数由编译器自动生成的,拷贝构造函数,赋值构造函数

1、普通构造函数

  

#include <iostream>

using namespace std;

class AA
{
public:
	AA()
	{
		cout << "我是构造函数  自动调用" << endl;
	}
	~AA()
	{
		cout << "我是析构函数  函数结束时我自动调用" << endl;
	}

private:
	
};

  当然也可以有带参数的构造函数,这里就不做明细了,和普通函数相同

2、拷贝构造函数

  拷贝构造函数:A b(a)   像这种类型的是拷贝构造函数

#include <iostream>

using namespace std;

class AA
{
public:
	AA()
	{
		cout << "我是构造函数  自动调用" << endl;
	}
	AA(const AA&obj2)//拷贝构造函数
	{
		cout << "我也是构造函数我通过调用另一个对象obj2初始化自己" <<a<< endl;
	}
	~AA()
	{
		cout << "我是析构函数  函数结束时我自动调用" << endl;
	}

private:

};


void main()
{

	AA a1(1);
	AA a2(a1);//执行构造函数
	system("pause");
}

  3、赋值构造函数

  

赋值构造函数:A b=a

#include <iostream>

using namespace std;

class AA
{
public:
	AA()
	{
		cout << "我是构造函数  自动调用" << endl;
	}
	AA(const AA&obj2)//赋值构造函数
	{
		cout << "我也是构造函数我通过调用另一个对象obj2初始化自己" <<a<< endl;
	}
	~AA()
	{
		cout << "我是析构函数  函数结束时我自动调用" << endl;
	}

private:
};



void main()
{

	AA a1(1);
	AA a2 = a1;//赋值构造函数
	cout << "以初始化完毕" << endl;
	system("pause");
}

  

  水平有限,欢迎指正

posted @ 2018-06-07 16:32  hangye  阅读(195)  评论(0)    收藏  举报