저는 C++을 처음 접했고 약간 문제가 있습니다. 다른 클래스의 메서드에 대한 호출에서 변수를 할당하려고하지만 항상 segfaults입니다. 내 코드는 경고없이 컴파일되고 gdb에서 모든 변수가 올바른지 확인했지만 함수 호출 자체가 segfault를 일으키는 것으로 보입니다. 제가 사용하는 코드는 대략 다음과 같습니다 :Segfault 메서드를 호출 할 때 C++
class History{
public:
bool test_history();
};
bool History::test_history(){
std::cout<<"test"; //this line never gets executed
//more code goes in here
return true;
}
class Game{
private:
bool some_function();
public:
History game_actions_history;
};
bool Game::some_function(){
return game_actions_history.test_history();
}
어떤 조언이나 조언을 주시면 대단히 감사하겠습니다!
편집 : 더 이상 local_variable이없고 값이 직접 반환되도록 코드를 편집했습니다. 그러나 여전히 세그 폴트입니다. 실제 코드를 게시하는 경우 상당히 큰데, 어떤 부분을 게시해야합니까?
우리는 실제 코드를 참조 할 필요가있다. –
'local_variable'은별로 로컬하지 않습니다. 그렇습니까? :) 그것은 멤버 변수입니다. 또한, bool을 테스트하여 해당 bool을 반환하는 것은 약간 중복됩니다 :'return local_variable;'. 물론, 당신은 실제로 그것을 저장할 필요가 없다.'return game_actions_history.test_history();'어쨋든,이 코드는 "괜찮다". 'Game g;를 만들 수는 있지만'g.some_function();'을 호출 할 수는 없습니다. 그렇지 않은 경우 제대로 작동합니다. – GManNickG
그리고 어떻게 부르니? – EFraim