및 ->*? " />
연산자 오버로딩은 개발자가 내장 연산자의 기능을 확장할 수 있게 해주는 강력한 C 기능입니다. 그러나 , ->, ., -> 등과 같은 특정 구성원 액세스 연산자는 혼란스러울 수 있습니다. 이러한 연산자 중 몇 가지 자주 묻는 질문에 답하세요.
예를 들어 다음 코드를 생각해 보세요.
->* 연산자struct client { int a; }; struct proxy { client *target; client *operator->() const { return target; } }; struct proxy2 { proxy *target; proxy &operator->() const { return * target; } }; int main() { client x = { 3 }; proxy y = { &x }; proxy2 z = { &y }; std::cout << x.a << y->a << z->a; // prints "333" }
.* 및 . 연산자
Const 고려 사항
결론
위 내용은 -> 및 ->*와 같은 C 멤버 액세스 연산자를 효과적으로 오버로드하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!