//单纯值复制
#include <iostream>
using namespace std;
class Computer
{
friend void test();
//普通构造(无参),以使用重载”=“运算符
Computer() {};
//普通构造,给对象赋值
Computer(int price)
: m_price(price)
{
};
//拷贝构造函数,对象之间赋值(创建对象时)
//如果只是赋值,不进行修改实参的数据,加const保护数据
Computer(const Computer& comter)
{
this->m_price = comter.m_price;
}
//重载运算符"=",对象给对象赋值(对象已经创建完毕)
void operator=(const Computer& comter);
private:
int m_price;
};
void Computer::operator=(const Computer& comter)
{
this->m_price = comter.m_price;
}
//为了让test访问private,加友元
void test()
{
//普通构造函数初始化
Computer comter1(100);
cout << "普通构造函数初始化后comter1的price: " << comter1.m_price <<endl;
//拷贝构造函数对象赋值(这种只在值之间拷贝的方式称为浅拷贝)
Computer comter2 = comter1;
Computer comter3(comter1);
cout << "拷贝构造函数初始化后comter2[=]的price: " << comter2.m_price << endl;
cout << "拷贝构造函数初始化后comter2[()]的price: " << comter2.m_price << endl;
//重载=运算符的使用
Computer comter4;
comter4 = comter1;
cout << "重载”=“后comter4的price: " << comter2.m_price << endl;
}
int main()
{
test();
system("pause");
return 0;
}
拷贝构造函数 与重载=号运算符
最新推荐文章于 2024-05-09 13:07:10 发布