2016-10-13 129 views
-2

我的班級我的頭文件中定義,在我的.cpp文件我有:如何在類之外的成員函數中調用成員函數?

bool Card::foo(const std::string &trump) const {...} 

bool Card::bar(const std::string &trump) const { 
    bool oof = foo(const std::string &trump);  
} 

這是不工作的一些原因。 XCode發生錯誤:預期表達式。也是一樣,當我嘗試:

bool oof = Card::foo(const std::string &trump); 
bool oof = foo(const std::string &trump) const; 
+5

'bool oof = foo(王牌);'你讓它太複雜了。 –

+0

爲什麼不包含const std :: string? – Goldname

+1

他們爲什麼要這樣? –

回答

0

類型信息不需要/調用foo(const的的std :: string部分),因爲語言不工作時,這種方式允許的。函數聲明將需要它,但在調用它時不包括該類型。看看伊戈爾的例子。

2

檢查

bool Card::foo(const std::string &trump) const {...} 

bool Card::bar(const std::string &trump) const { 
    bool oof = foo(trump); 
} 

任何下面的表達式:

bool oof = foo(const std::string &trump); 
bool oof = Card::foo(const std::string &trump); 
bool oof = foo(const std::string &trump) const; 

將重新定義trump因爲

bool Card::bar(const std::string &trump) const 

已經定義它。