我正在寫一個類,並且這個疑問出現了。這是undef。行爲?另一方面,我不確定它的推薦,或者它是一種好的做法。如果我確保在init函數中不會拋出異常,那麼它是否是一個?在構建實例之前調用非成員函數
//c.h
class C{
float vx,vy;
friend void init(C& c);
public:
C();
};
//c.cpp
C::C()
{
init(*this);
}
void init(C& c) //throws() to ensure no exceptions ?
{
c.vx = 0;
c.vy = 0;
}
在此先感謝
爲您析構函數你沒有提供的主體。只要刪除它。 – 2010-04-15 04:22:12
@epronk。它的示例代碼可以正確顯示。 – Tom 2010-04-15 04:24:51
'throw()'不能確保不會有任何異常,它會添加一個運行時檢查,如果有異常通過,它將調用terminate(或其他gorgons之一)。不幸的是,沒有編譯時檢查異常規範......即將推出的標準將添加'noexcept'關鍵字,以確保一種方法永遠不會拋出,但是由程序員來確保它,並且如果它曾經拋出未定義行爲的可怕境界。 – 2010-04-15 07:05:54