拷贝构造函数
#include <iostream>
using namespace std;
class CExample
{
private:
int a;
public:
CExample(int b)
{ a=b;
}
void Show ()
{ cout<<"Object's inner private a ="<<a<<endl;
}
};
int main()
{ CExample A(100);
CExample B=A;
B.Show ();
return 0;
}
#include <iostream>
using namespace std;
class CExample
{
private:
int a;
public:
CExample(int b)
{ a=b;}
CExample(const CExample& C)
{
a=C.a;
}
void Show ()
{
cout<<a<<endl;
}
};
int main()
{
CExample A(100);
CExample B=A;
B.Show ();
return 0;
}
CExample(const CExample& C)就是我们自定义的拷贝构造函数。
可见,拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它的唯一的一个参数是本类型的一个const类型的引用变量,该参数是不可变的。例如:类X的拷贝构造函数的形式为X(const X& x)。
当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。