2011-09-27 5 views
0

필자가 만든 클래스에 대한 포인터를 사용하는 코드가 있습니다. 예를 들어 내가 Person 메소드를 가지고 있고 각 Person이 이름을 가지고 있다고 말할 수 있습니다. 지금은 지금은 내가 가지고있는 포인터를 사용하는 사람의 이름을 얻으려고 말할 수C++에서 포인터의 메서드를 사용하는 방법?

Person& * person_; 

같은 사람을 위해 포인터를 사용한다고 말할 수 있습니다.

person_.getName() 

과 같은 간단한 작업을 수행하면 클래스가 아닌 클래스라는 오류가 반환됩니다.

내 질문은 : 내가 가진 모든 포인터가 작동한다면, 가리키는 클래스의 메서드를 어떻게 사용합니까?

person_->getName() 

-> 당신이 원하는 무엇인가 :

+0

참조에 대한 포인터와 같은 것은 존재하지 않습니다. –

+2

참조에 대한 포인터를 가질 수 없습니다. 잘못된 코드를 사용하는 방법에 대해 추론하기는 어렵습니다. –

답변

1

person_->getName(); 당신은 포인터 표기법을 사용해야합니다.

+1

이것은'(* person) .getName()'에 대한 구문 설탕이다. –

1

5

컴파일러에서 Person& * person_을 받아 들일 방법이 없다는 것은 의미가없는 선언이므로 (참고 문헌에 대한 포인터가 없기 때문에). Person* person_을 실제로 사용한다고 가정하면 -> 연산자를 사용하면됩니다 (person_->getName()).

1

person_->getName()(*person_).getName()의 줄임말입니다. 둘 다 작동합니다. 또한 @Marcelo가 지적한대로 Person& * person_;

0

person_->getName()을 사용해야합니다.

당신은 그것에 대해 읽을 수 있습니다 on cplusplus.com

관련 문제