我的項目在這裏https://www.dropbox.com/s/foq27lafefoes7d/lab3.zip?dl=0 我有很多其他的錯誤,但我確信我沒有試圖重新定義字符串或任何其他的東西之前問這個。在發生Const方法來訪問C++中的私有數據成員
void Player::Display() const
{
cout << "\nPlayer Name: " << GetName() <<
"\nGrade: " << GetGrade() << "\nG.P.A. " << GetGPA() << endl;
}
這裏的問題,我得到的訪問衝突,是有辦法這同時保持顯示常量或該代碼有效,我的問題是,別的地方,而不是陷入調試器?
//Getters FOUND OUT THESE NEED TO BE CONSTANT RETURN TYPES AS WELL
const char* Player::GetName() const {return m_name;}
const int Player::GetGrade() const {return m_grade;}
const double Player::GetGPA() const {return m_gpa;}
更多相關代碼, 所以,我瞭解到,讀取私人數據成員,像這樣一個const方法,你得把兩個常量「承諾」不改變士兵
class Player
{
public:
char* GetName() const;
int GetGrade() const;
double GetGPA() const;
private:
char* m_name;
int m_grade;
double m_gpa;
};
錯誤在哪裏? – user657267 2014-10-17 11:21:16
我覺得'GetName()'應該返回一個'const char *'。 – Galik 2014-10-17 11:21:18
你的代碼看起來很好(除了我會讓'Player :: GetName()'返回'const char *'),所以問題在其他地方 - 很可能有些東西沒有在'Player'中初始化。 – 2014-10-17 11:21:41