和新手朋友一起来温习一下复制构造函数的基础使用。
Copy构造函数:
1.它是构造函数,只有对象被初始化的时候才会调用构造函数。
2.它的初始目的是把一个已经有的对象复制给新创建的对象。
3.它有时候会被隐式调用。
4.如果不想采用赋值的方试来创建对象,就把Copy构造函数设置为private。
5.如果不想让对象被复制,就把Copy构造函数和赋值操作符(函数)设置为private。
例子:
#include \"stdafx.h\"
#include <iostream>
using namespace std;
class A
{
public:
A(int aa):c(aa){cout << \"A(int aa)\" << endl; }
A(A& ca)
{
c = ca.c;
cout << \"A(A& ca)\"<<endl;
}
const A& operator=(A& ca)
{
c = ca.c;
cout << \"operator=(A& ca)\" << endl;
return *this;
}
private:
int c;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a = 5; //构造函数
cout<<\"=======A=========\"<<endl;
A b = 2;//构函数
cout<<\"========B========\"<<endl;
a = b;//=赋值操作符
cout<<\"=========A=B=======\"<<endl;
a = A(7);//先构造后=
cout<<\"========a=7=======\"<<endl;
A c(a);//copy构造函数
cout<<\"========c(a)========\"<<endl;
A d = a;//copy构造函数
return 0;
}