簡體   English   中英

此標頭的含義是什么(虛擬const char * what()const throw())?

[英]What is the meaning of this header (virtual const char* what() const throw())?

class myexception: public exception
{
  virtual const char* what() const throw()
  {
    return "My exception happened";
  }
};

抱歉,這個問題聽起來很愚蠢,但我在解析標題時遇到了麻煩。 有人可以用英語描述標題的實際含義嗎? 在我看來,第一件事是關鍵字virtual myexception類不是基類,而是繼承myexception實現的exception類,那么為什么在這里使用virtual 我猜想const是用於返回類型的,它是一個c樣式的字符串,它是const,另一個const是要確保此對象不能被修改(沒人可以告訴我該對象可能是什么?)。 我不知道throw()到底能做什么,以前從未見過這種語法。

虛擬

不添加任何內容,因為要覆蓋的方法已經是虛擬的。 您是正確的:可以省略。

const char * what()

一個名為what()成員函數,該成員函數不帶參數,並且返回指向const char的指針。

const

可以通過const指針或對該類或派生類的實例的引用來調用成員函數。

扔()

不拋出異常。

當您從基類覆蓋已經虛擬的方法時(例如在這種情況下), virtual關鍵字是可選的(您可以跳過它或顯式地寫下-沒有區別)。 您對兩個const關鍵字的評論幾乎是正確的。 這是基本的C ++。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM