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");
}
水平有限,欢迎指正

浙公网安备 33010602011771号