什么是拷贝构造函数,它的作用是什么??

twtetgso 2002-08-05 09:12:06
什么是拷贝构造函数,它的作用是什么??一般在哪种情况下使用。。
...全文
382 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
langhaixin 2002-08-05
  • 打赏
  • 举报
回复
所谓拷贝构造函数 就是用同一个类的不同实例初始化这个类的另一个实例
ClassA a;
ClassA b(a);
deepsky 2002-08-05
  • 打赏
  • 举报
回复
int a = 1;
int b = a; //用a的值拷贝给新创建的b
与变量的赋值类似,我们定义的类为了实现这种功能就要使用拷贝构造函数。
zhaoweikid 2002-08-05
  • 打赏
  • 举报
回复
拷贝构造函数就是用已存在的对象来初始化另一个对象。
上面fanwanping(6827)所说的有点不妥,拷贝构造函数应该使用引用,
上面那个例子应该写成这样:
class A
{
private:
int b;
public:
A(int c=0);
A(A &a);
...
};
A::A(int c=0){
b=c;
}
A::A(A &a){
b=a.b;//这里实现把已存在的a的值拷贝给了正在初始化的对象
}
void main()
{
A a1(10);
A a2(a1);//这里使用拷贝构造函数来初始化a2

}
Andy 2002-08-05
  • 打赏
  • 举报
回复
拷贝构造函数的参数最好是一个reference,like this:
class A
{
...
A(A& a)
...
}
fanwanping 2002-08-05
  • 打赏
  • 举报
回复
纠正一下:

A(A a) { ... } // copy constructor
..................
fanwanping 2002-08-05
  • 打赏
  • 举报
回复
class A {
A() { ...} //default constructor
A(A a) { ... } //default constructor

.....................
}
实例化该类的一个对象时,当传入的参数是该类的一个对象时,调用
拷贝构造函数

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧