关于拷贝构造函数
我想在拷贝构造函数里更改一些东西,比如:
- C/C++ code
class Sales_item {public: Sales_item(const Sales_item& si):units_sold(si.units_sold+1),isbn(si.isbn),revenue(si.revenue){units_sold = si.units_sold + 1;}.............有3个参数定义;};代码目的是想把那个UNIT SOLD整形在复制中加1。但我无论是用初始化列表还是构造函数体内复制都不行。请高手帮忙。
P。S上面代码两种方法都在里面。
谢谢各位
[解决办法]
我试验了一下,没有问题啊,结果打印出了+1以后定值。
- C/C++ code
#include <iostream>using namespace std;class Sales_item {public: Sales_item(int sold,string i,double r):units_sold(sold),isbn(i),revenue(r) {} Sales_item(const Sales_item&si):units_sold(si.units_sold+1),isbn(si.isbn),revenue(si.revenue){units_sold = si.units_sold + 1;} void print(){ cout << "units_sold=" << units_sold << ",isbn=" << isbn << ",revenue=" << revenue << endl; }private: int units_sold; string isbn; double revenue;};int main(void){ Sales_item s1(10,"10011",100); Sales_item s2(s1); s2.print(); return 0;}