上篇说到C++的构造函数与析构函数的使用
本次学习下构造函数的进阶版
class product {
public:
product(QString name, int money);
product(const product& other);
product& operator=(const product& other);
private:
QString m_name;
int m_money;
};
product::product(QString name, int money):m_name(name),m_money(money)
{
}
product::product(const product& other):m_name(other.m_name),m_money(other.m_money)
{
}
product& product::operator=(const product& other)
{
if (this != &other) {
m_name = other.m_name;
m_money = other.m_money;
}
return *this;
}
复制构造函数 可以简单理解为将实例化的对象再拷贝一份,变成新的实例化对象。再通过接下来的例子来认识一下
int main()
{
product p1("vivo",1000);//调用常规的构造函数,对象1
product p2(p1); 调用复制构造函数,通过拷贝p1的对象
product p3 = p1; 调用复制复制构造函数,通过拷贝p1的对象
//这样,p1,p2,p3中的m_name和m_money的数据都是一样的
return 0;
}
|