"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C ++에서 자동 "자체"키워드를 구현하는 방법은 무엇입니까?

C ++에서 자동 "자체"키워드를 구현하는 방법은 무엇입니까?

2025-04-13에 게시되었습니다
검색:557

How Can We Implement an Autonomous

Declaring Self with decltype

The initial attempt to introduce self using decltype fails because it attempts to access this outside of an instance. 이를 해결하려면 템플릿 내에서 자체 선언을 캡슐화해야합니다. 클래스 셀프베이스 : public ts ... { 보호 : typedef x self; };

이 템플릿은 자체에 액세스 할 수있는 유형의 기본 클래스 역할을합니다. x

with_self_derived (x, ...) : x

template 
class SelfBase: public Ts...
{
protected:
    typedef X self;
};

클래스를 정의 할 수 있습니다. { void test () { 셀프 푸; // 이제 자체를 사용할 수 있습니다 } }; // 여러 상속 with_self_derived 클래스 (bar, foo, foo2) { / * ... */ };

  • 결론
decltype 및 템플릿을 활용하여 c에서 자율적 인 자체 멤버 유형을 구현할 수 있습니다. 이 접근법은 클래스 재정의 결함으로 인한 침묵 버그의 위험없이 클래스 내에서 자기를 사용할 수있게합니다. 제공된 편의 매크로는 구현을 간단하고 유연하게 만들어 여러 기본 클래스 상속과 자체 및 일반 기본 클래스의 다른 조합을 허용합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3