#include<iostream>
using namespace std;
class List {
private:
double *node;
int *size;
public:
List() { node=new double(0); size=new int(0); }
List(double *x)
{
node = new double(*x);
size=new int(0);
}
List(const List &x) {
cout << "拷貝構造函數" << endl;
node=new double(*x.node);
size=new int(*x.size);
}
~List() {
cout << "析構函數" << endl;
delete node;
delete size;
}
void output() const {
cout << "node = " << *node << "\tsize = " << *size << endl;
cout << "adress " << (void*)node << "\taddress " << (void*)size << endl;
}
List operator = (const List &x) {
//*node=*x.node;
//*size=*x.size;
delete node;
delete size;
node = new double(*x.node);
size = new int(*x.size);
return *this;
}
};
int main() {
double a=9;
List la(&a),lb;
la.output();
lb.output();
cout << "即將調用拷貝構造函數" << endl;
lb=la;
cout << "已調用拷貝構造函數" << endl;
la.output();
lb.output();
return 0;
}