C++中构造函数,拷贝构造函数和赋值函数的区别

如题所述

class A{
    //    ...
};

A a = new A();
A b = a;    //拷贝构造函数
A c;
c = a;        //赋值函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-09-05
字面上理解:
构造函数 是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值.一个类也可以有多个构造函数,用来初始化不同形式的类。
拷贝函数是特殊的构造函数,用来完成对象初始化,即定义时赋值,下面程序中有详解。如果没有定义,系统会调用默认的拷贝构造函数,但此函数不能处理深拷贝问题,及若有new用到,系统的只是共享区域,不分配新空间。
赋值函数要用运算符重载来实现。
可以使用合成复制构造函数的类通常也可以使用合成赋值操作符。一般来说,如果类需要复制构造函数,也就需要赋值操作符。
如需要深入了解区别,建议还是参考具体案例去理解。
相似回答