class 멤버 변수 포인터? 어떨 때 쓰죠?
조회수 3266회
소스코드
class Car
{
public:
int speed;
};
int main()
{
int Car::*pSpeed = &Car::speed;
return 0;
}
이런 코드를 봤는데 main
에 int Car::*pSpeed = &Car::speed;
는 어떤 경우에 쓰는지 궁금합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
pointer to member
라고 합니다. 멤버 변수를 우회적으로 접근하게 해주지요.자세한 사용은 아래에 코드를 좀 더 추가해서 주석으로 달아놓았습니다.
#include <iostream> using namespace std; class Car { public: int speed; }; int main() { int Car::*pSpeed = &Car::speed; Car c1; c1.speed = 1; // 직접 접근(일반적인 방법) cout << "speed is " << c1.speed << endl; //1출력 c1.*pSpeed = 2; // pointer to member를 써서 접근(우회) cout << "speed is " << c1.speed << endl; //2출력 return 0; }
저도 이론으로만 알고있지 실제로 써본 적은 없습니다.
댓글 입력