我編碼我自己的異常類:從性病繼承:: runtime_error
class Exception : public std::runtime_error{
}
而且我想超載what()
。我怎樣才能做到這一點?
另外,從std::runtime_error
繼承時,需要注意什麼?
我編碼我自己的異常類:從性病繼承:: runtime_error
class Exception : public std::runtime_error{
}
而且我想超載what()
。我怎樣才能做到這一點?
另外,從std::runtime_error
繼承時,需要注意什麼?
我認爲,作爲runtime_error的一部分,我相信它是虛擬的,所以要重載它,你需要創建一個方法完全相同的方法簽名。所以,如果你的瀏覽器指向:http://www.cplusplus.com/reference/exception/exception/,然後你會看到什麼()
所以超載是你需要做這樣的事情在你的頭文件中的定義:
class Exception : public runtime_error
{
public:
const char* what() const throw();
}
然後你會在你的CPP文件中這樣定義它:
const char* Exception::what() const throw()
{
// do stuff
}
希望它可以幫助...
謝謝!它非常有幫助。但是,這意味着什麼:const throw();之後const char * what() – user3487199
樂意幫忙,請不要忘記點擊勾號接受答案。 – Welshboy
@ user3487199:const表示what()不修改對象,throw()表示它不拋出。 –
如果你想有一個邏輯錯誤你會做什麼? –
你的意思是*超載*或*重寫*? – milleniumbug