2010-04-21 22 views
2

我有我想要初始化爲隨機值的角度類。 Angle構造函數可以從random()函數接受int。將此調用放置在ctor列表中是否安全:調用函數來初始化ctor列表中的類是否安全?

foo::foo() : Angle(random(0xFFFF)) {...} 

還是必須在構造函數的主體中執行此操作?

foo::foo() { Angle = Angle(random(0xFFFF)); ...} 

如果它的事項,Foo類是從另一個類派生確實有虛方法。另外,我們的應用程序不允許有異常處理。

回答

4

如果random不能扔(很難相信它可以),這是沒有問題的。副作用允許在構造函數初始值設定項中使用。如果只需要很少的代碼,那麼在那裏做任何初始化都是很好的做法。

+0

這就是我正在尋找的。謝謝! – 2010-04-21 03:38:40

+0

即使隨機可能會拋出異常,也有一個稱爲function-try塊的特殊構造,它允許您捕獲異常。 – 2010-04-21 03:45:18

+0

再次,在我的情況下,這並不重要,因爲在我的應用程序中,完全禁用了例外。 – 2010-04-21 04:02:43

相關問題