내 프로젝트는 여기 https://www.dropbox.com/s/foq27lafefoes7d/lab3.zip?dl=0 다른 많은 오류가 있지만이 질문을하기 전에 문자열 리터럴 또는 무엇이든 재정의하려고하지 않았 음을 확인했습니다.C++에서 개인 데이터 멤버에 액세스하는 Const 메서드
void Player::Display() const
{
cout << "\nPlayer Name: " << GetName() <<
"\nGrade: " << GetGrade() << "\nG.P.A. " << GetGPA() << endl;
}
문제는 유지 동안이 할 수있는 방법이 표시 CONST이, 내가 액세스 위반을 얻을, 여기에서 발생했을 경우, 또는이 코드는 유효하고 내 문제는 다른 곳이 아니라 디버거에서 붙 잡히기입니까?
//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을해야이 같은 CONST 방법으로 개인 데이터 멤버를 읽는 것을 배운
class Player
{
public:
char* GetName() const;
int GetGrade() const;
double GetGPA() const;
private:
char* m_name;
int m_grade;
double m_gpa;
};
어디서 오류가 있습니까? – user657267
'GetName()'은'const char *'를 리턴해야한다고 생각합니다. – Galik
당신의 코드는 괜찮습니다. (Player :: GetName()을''const char *''를 돌려 주겠다는 것을 제외하고), 문제는 다른 곳에서 발생합니다. 무엇인가가'Player'에서 초기화되지 않았을 가능성이 큽니다. –