2013-05-09 66 views
4
char* n=m.getName(); 

對於上面的指令,我得到以下錯誤Invalid arguments ' Candidates are: char * getName() '。我錯過了什麼?類中的參數無效

char* Medicine::getName() 
{ 
    return this->name; 
} 

name被聲明爲char name[50];mconst Medicine& m

回答

9

如果mconst,那麼只有const方法可以在叫。也許你可以在你的方法改爲

const char* Medicine::getName() const; 

,並使用它像這樣:

const char* n=m.getName(); 

雖然你可能會考慮使用std::string數據成員,而不是char數組。

+3

如果有明顯的反對票的理由,我想聽聽他們。我更願意修復此答案中的錯誤,或者在必要時澄清錯誤。 – juanchopanza 2013-05-09 16:22:34

+0

謝謝,我會去找一些'string'教程 – Matt 2013-05-09 16:38:21

+0

@juanchopanza有人已經投票了回覆?真的嗎?什麼?爲什麼?! – 2013-05-09 17:09:06

0

請注意,如果該成員變量是const,則只有const成員函數可以訪問它。靜態相同,即,如果成員變量是靜態的,則只有靜態成員才能訪問該成員變量。