拷贝构造函数

来源:互联网 发布:dota2网络延迟 编辑:程序博客网 时间:2024/05/21 08:02
学到拷贝构造函数的时候一直很费解这个东西,
网上那些大牛的话太专业,读起来难免会犯困,
查了好几本书,每一本书对这一块举了不同的例子
通过学习之后发表一下自己的见解,

拷贝构造函数可以根据自己已经定义好的类对象完成新对象的属性初始化,
拷贝构造函数是使用类对象的引用作为参数的构造函数,他能够将参数的属性值,拷贝给新的对象,
完成新对象的初始化。

然后写一个简单明了的小例子,
using namespace std;
class A //定义一个类A
{
public:
A(int i, int j) { n = i; m = j; }
A(A&one) { this->n = one.n+=1;  this->m = one.m-=1; } //this指当前对象,我们对m和n稍做修改
void print(){cout << "n=" << n << "\t"<< "m=" << m << endl;}
private:
int n;
int m;
};
int main()
{
A a(2, 3); //定义一个对象a
a.print();
A b(a); //定义一个对象b,且用对象a为参数;
b.print();
return 0;
}

拷贝构造函数
因在拷贝过程中对n+1对m-1
所以导致拷贝后对象b中的n=3,m=2;



拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量

0 0