2013-10-27 107 views

回答

2

關鍵字class是可選的*。

所以代碼

ClassName* MethodName(int foo) const; 

的(當量)行定義了一個函數,它

  • 需要一個int作爲參數
  • 返回一個指向ClassName實例
  • 承諾不修改它被調用的實例(this指針在函數內是const)

*它是如此罕見,我不知道這是可能的,甚至寫。在C中,如果您定義某個結構類型的變量(或函數參數/返回類型),則通常會編寫struct StructName。由於C結構類似於類的概念(請不要在C++中使用,結構類),但由於兼容性的原因,它們似乎允許將structclass寫入結構/類名稱的前面。 C++被設計爲能夠幾乎未修改地解析C代碼(雖然它們是兩種不同的語言)。所以基本上把關鍵字classstruct放在任何類名前面都沒有意義。

+0

感謝您的確切答案。我知道其他的事情,但我真的很感興趣,正在使用class關鍵字,因爲我看到它多次使用。我猜這是用來提高代碼的可讀性呢? –

+1

查看我的編輯爲「原因」。 – leemes

+0

哇。沒想到要編譯。 – Shoe

0

它是所謂的詳細類型說明符。它在聲明區域中引入了新的類名。在你的例子中,ClassName是作爲一個新類型引入的。

相關問題