演示:拷贝构造函数
方式一:值传递的方式给函数传递参数
方式二:基于已存在的对象创建新对象
#include <iostream>
using namespace std;
class Acc
{
private:
// 属性
std::string name {"acc"};
double balance {0.0};
public:
// 获取属性
string get_name(){return name;}
double get_balance(){return balance;}
// 构造函数
Acc(string name="None", double balance=0.0);
//析构函数
~Acc();
// 拷贝构造函数
Acc(const Acc &source);
};
Acc::Acc(string name, double balance)
: name{name}, balance{balance}
{
cout << "2个参数的构造函数被调用" << name << endl;
}
Acc::~Acc()
{
cout << "析构函数调用" << name << endl;
}
// 拷贝构造函数:根据已存在的对象来更新 新对象的属性(name, balance)
Acc::Acc(const Acc &source)
:name{source.name},balance{source.balance}
{
cout << "拷贝函数被调用,是" << source.name << "的拷贝"<< endl;
};
// 查看一下全部属性
void print_Info(Acc acc){
cout << acc.get_name() << " " << acc.get_balance() << endl;
}
int main()
{
// 1.值传递的方式给函数传递参数
// Acc a1;
// print_Info(a1);
// 2.基于已存在的对象创建新对象
Acc a2{"a2", 100.0};
Acc a3{a2}; // 直接复制
return 0;
}