템플릿 매크로를 사용하여 C에서 자율 self 멤버 유형 구현
C에서 PHP self 키워드의 기능을 시뮬레이션하는 것은 독특한 과제를 제기합니다. 사용자 정의 유형 별칭을 사용하여 클래스별 구현을 만드는 것이 가능하지만 이 접근 방식을 사용하려면 클래스 유형을 반복적으로 지정해야 하므로 잠재적인 오류가 발생할 여지가 있습니다. 이 문제를 해결하려면 보다 포괄적인 솔루션이 필요합니다.
다행히도 템플릿 매크로와 가변 템플릿의 조합을 사용하면 self를 자율적으로 구현할 수 있습니다. 작동 방식은 다음과 같습니다.
template <typename X, typename...Ts> class Self : public Ts... { protected: typedef X self; };
#define WITH_SELF(X) X : public Self<X> #define WITH_SELF_DERIVED(X,...) X : public Self<X,__VA_ARGS__>
class WITH_SELF(Foo) { void test() { self foo; } };
class WITH_SELF_DERIVED(Bar, Foo, Foo2) { /* ... */ };
이 접근 방식은 C에서 PHP의 self 키워드와 동등한 구현을 위한 자율적이고 유연한 방법을 제공하여 수동 클래스 복제의 필요성을 없애고 자동 버그 발생 가능성을 줄입니다.
위 내용은 C 템플릿 매크로는 자율적 자기 참조를 위해 PHP의 `self` 키워드를 어떻게 시뮬레이션할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!