當在C++聲明的方法做你這樣做例如如下(如果類名稱是詞法分析器例如):C++函數不同格式
bool Lexer :: IsDigit()
{
//code
}
或
bool isDigit()
{
//code
}
因爲我http://www.cplusplus.com/doc/tutorial/functions/
當在C++聲明的方法做你這樣做例如如下(如果類名稱是詞法分析器例如):C++函數不同格式
bool Lexer :: IsDigit()
{
//code
}
或
bool isDigit()
{
//code
}
因爲我http://www.cplusplus.com/doc/tutorial/functions/
喜歡這樣:
我與第一個樣式但是我在這個網站找到的最後一個,以及諸如使用struct Lexer
{
bool IsDigit() { return true; }
// ...
};
或者是這樣的:
struct Lexer
{
bool IsDigit();
// ...
};
bool Lexer::IsDigit() { return true; }
第一個版本包括在類定義內的成員函數定義。後者只將成員函數聲明放在類定義中,但將成員函數定義保留在外(或「脫序」)。
第二個例子是要麼
a)一種自由站立功能或
b)一種內嵌方法定義(如果它是一類體內)。
第一個示例是外部方法定義。
class Lexer {
bool IsDigit(); // method declaration
}
bool Lexer :: IsDigit() { return false; } // method definition
bool IsDigit() { return false; } // free-standing function
class Lexer2{
bool IsDigit { return false; } // inline method definition
}
它們可以被稱爲像這樣:
Lexer l;
l.isDigit(); // calls the first method
isDigit(); // calls the free-standing function
Lexer2 l2;
l2.IsDigit(); // calls the latter method
願意解釋爲什麼? – Appleshell
你爲什麼認爲這是錯的?我刻意留下了回報聲明,因爲這不是這個答案的意思。如果你認爲他們在問題的背景下至關重要,只需編輯它們。或者你的意思是因爲它是私密的? – Appleshell
這不是一個SSCCE,這是* only *旨在顯示問題中提到的功能的「格式」。 – Appleshell
你迷惑聲明,定義和內聯定義是什麼? –
Nah。他對自由函數沒有任何線索,我的猜測 – sehe
您是否來自Java? C++具有(免費)功能和方法。 – keyser