我一直在瀏覽代碼來看看在頭文件中這樣的結構:class ClassName * MethodName(int foo)const - 這是什麼意思?
...
class ClassName* MethodName(int foo) const;
...
類名是在其他頭文件中定義的類。 編輯: 使問題更清楚。我特別對class關鍵字感興趣。
我一直在瀏覽代碼來看看在頭文件中這樣的結構:class ClassName * MethodName(int foo)const - 這是什麼意思?
...
class ClassName* MethodName(int foo) const;
...
類名是在其他頭文件中定義的類。 編輯: 使問題更清楚。我特別對class關鍵字感興趣。
關鍵字class
是可選的*。
所以代碼
ClassName* MethodName(int foo) const;
的(當量)行定義了一個函數,它
int
作爲參數ClassName
實例this
指針在函數內是const)*它是如此罕見,我不知道這是可能的,甚至寫。在C中,如果您定義某個結構類型的變量(或函數參數/返回類型),則通常會編寫struct StructName
。由於C結構類似於類的概念(請不要在C++中使用,結構是類),但由於兼容性的原因,它們似乎允許將struct
和class
寫入結構/類名稱的前面。 C++被設計爲能夠幾乎未修改地解析C代碼(雖然它們是兩種不同的語言)。所以基本上把關鍵字class
或struct
放在任何類名前面都沒有意義。
它是所謂的詳細類型說明符。它在聲明區域中引入了新的類名。在你的例子中,ClassName是作爲一個新類型引入的。
http://www.embedded.com/electronics-blogs/programming-pointers/4024450/Tag-vs-Type-Names –