몇 가지 이상한 이유로 연산자 ->() 메서드를 직접 호출해야합니다. 예를 들어 :"operator ->()"를 직접 호출하려면 어떻게해야합니까?
class A {
public:
void foo() { printf("Foo"); }
};
class ARef {
public:
A* operator->() { return a; }
protected:
A* a;
};
내가 레프 개체가, 내가 쓰기로 foo는()를 호출 할 수 있습니다
aref->foo();
는 그러나, 나는이 보호 된 멤버 'A'로 포인터를 얻을합니다. 어떻게해야합니까? 이 구문뿐만 아니라 다른 모든 사업자에 대해 작동
당신의 질문 제목은 당신이'operator->'를 직접 호출하기를 원한다는 내용입니다. 질문의 본문은'ARef :: a'에 대한 포인터를 얻고 싶다고 말합니다. 이것들은 전혀 관련이없는 두 가지 문제입니다. 그래서, 당신은 무엇에 대해 물어보고 싶은가요? 둘 사이에 연결이 있으면 설명하십시오. – AnT