C++中,拷贝构造函数,和构造函数有什么区别?

2024-12-31 13:52:30
推荐回答(5个)
回答1:

构造函数:是用于对对象初始化名字,必须与类的名字相同,比如说定义一个圆类。
复制构造函数,在某种意义上相当于运算符“=”重载,把一个对象的数值复制给另一个
class circle
{
public:
circle (int r):radium(r){};//构造函数的第一种写法
circle (int r){radium=r;}//构造函数的第二种写法
circle(circle & c)
{
radium=c.radium;//这样复制,在主函数里用cir1(cir2);这样使用
}
private:
int radium;
};

回答2:

拷贝构造函数可以防止类中的指针在对其他的对象赋值时出现问题,而构造函数只是一个简单的构造,不如拷贝构造函数安全,书本上应该有介绍的!

回答3:

拷贝构造是构造的一种特例,它是从同种对象来构造新实例

回答4:

回答5:

copy构造函数用于将一个对象为另一个对象初始化,例如参数列里的对象,虽然与operator=的函数体基本相同,但最好还是不要互相调用,且必要时声明为explicit,还用注意浅复制和深复制。
构造函数系用于声明对象时的资源申请,而default构造函数不用任何事。