92、构造函数、拷贝构造函数和赋值操作符的区别

构造函数:

对象不存在,没用别的对象初始化,在创建一个新的对象时调用构造函数

拷贝构造函数:

对象不存在,但是使用别的已经存在的对象来进行初始化

赋值运算符:

对象存在,用别的对象给它赋值,这属于重载“=”号运算符的范畴,“=”号两侧的对象都是已存在的

举个例子:

#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout << "我是构造函数" << endl;
}
A(const A& a)
{
cout << "我是拷贝构造函数" << endl;
}
A& operator = (A& a)
{
cout << "我是赋值操作符" << endl;
return *this;
}
~A() {};
};
int main()
{
A a1; //调用构造函数
A a2 = a1; //调用拷贝构造函数
a2 = a1; //调用赋值操作符
return 0;
}
//输出结果
//我是构造函数
//我是拷贝构造函数
//我是赋值操作符
原文地址:https://www.cnblogs.com/crbhf/p/14995003.html