1. 程式人生 > >【C/C++】建構函式 constructor

【C/C++】建構函式 constructor

對於一個class,可以定義多種建構函式,比如

class A {
	public:
		// your constructor A
		// your constructor B
	  void Print() {std::cout<<value<<std::endl;}		
	private:
		int value;
};

空建構函式

A(){}

複製建構函式

複製建構函式指的是傳入的引數是 A 的一個例項,注意,這裡有一個大坑:

A(A other) {value = other.value; }

如果這樣的直接值傳遞,把形參複製到實參會呼叫複製建構函式自己,也就會形成沒有終止的遞迴呼叫,最終爆棧溢位。因此,C++ 中不允許此類值傳遞的複製建構函式,編譯會報錯。解決方案也很簡單,就是值傳遞改為蒼涼引用

A (const A& ohter){value = other.value;}

Ref