//拷貝構造函數,什麼時候算是 “合適的時候”,才會合成呢~~~ }
#include
using namespace std;
class A
{
public:
A(char *_str):str(_str),x(0){}
//A(const A&a){cout << "call default copy constructor..." << endl;} //如果定義了的話,那麼編譯器不會合成。
//如果沒有定義的話,對於類A來說,編譯器依然不會合成,因為此時的對象之間的復制很簡單,就是一個int與一個char *的復制。
//此時,你可能已經注意到了,這個類含有指針,應該自己定義復制控制函數。但這並不是我本篇文章想要強調的東西。
~A(){}
int getX() const {return x;}
char *getStr() const {return str;}
private:
int x;
char *str;
};
int main()
{
A a("123");
A b = a;
cout << b.getX() << " " << a.getX() << endl;
cout << b.getStr() << " " << b.getStr() << endl;
return 0;