C++에서 객체에 점(.)을 찍는 거랑 ->를 하는 건 어떤 차이가 있나요? 포인터 너무 싫어요..
.
->
1 .연산자는 포인터에서는 쓸 수 없습니다. 2 foo->bar() = (*foo).bar()
foo->bar()
(*foo).bar()
2는 꼭 (*foo)같이 괄호로 싸줘야 합니다. .연산자가 *연산자 보다 우선순위가 높기 때문에 *foo.bar()는 컴파일 에러를 낼 가능성이 높습니다.
(*foo)
*
*foo.bar()
덧붙이자면, .연산자는 오버로드 할 수 없고, ->는 오버로드 할 수 있어서 쓸 때 주의해주세요
프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.
댓글 입력