我不習慣C++,而且在寫一個構造函數時遇到了問題。
看到這個例子,是我工作的代碼的短版:C++如何寫一個構造函數?
class B {
public:
B(int x);
}
class A {
public:
B b;
A(){
// here I have to initialize b
}
}
,因爲我需要在構造函數初始化B,因爲B沒有默認的構造函數拋出一個編譯器錯誤。我想我已經在初始化列表中做了它,但B(int x)參數是一個值,我必須用一些算法來計算,所以我不知道這應該如何正確完成,或者如果我錯過了某些東西或做錯了。
在像java這樣的其他語言中,我會有一個對B的引用,並在我需要獲取初始化值的其他代碼之後,將它初始化爲A的構造函數。
在這種情況下,初始化b的正確方法是什麼?
謝謝!
謝謝,這工作。艱難的我認爲可能有更好的/更清潔的方式。 – Damian 2011-04-01 00:06:34
還要確保在成員初始值設定項列表中使用的函數不會拋出任何異常。 :) – Viren 2011-04-01 00:20:26
雖然這個作品...它必須是那麼可怕?這使得我所有的相關代碼都在文件周圍混合了。一邊的對象構造,另一邊的對象配置等等......也許最好有一個默認的構造函數來創建一個不工作的實例,然後在構造函數中創建一個新的實例。你怎麼看? – Damian 2011-04-01 03:01:00