나는 템플릿 인자 my_class<U>
(일반적으로 다른 템플릿 인자를 가짐)을받는 템플릿 클래스 my_class<T>
을 가지고있다. 템플릿이없는 코드 또는 동일한 템플릿 매개 변수와 달리 my_class<U>
인스턴스 개인 필드에 액세스 할 수는 없지만 동일한 클래스입니다.다른 템플릿 인자를 가진 동일한 클래스는 서로의 private 필드에 접근 할 수 없다.
template <class T>
class my_class {
private:
T * data;
public:
template <class U>
my_class(const my_class<U> & p) {
data = p.data; // <-- visibility exposing
}
}
가능한가요? 어쩌면 다른 템플릿 인수로 친구 클래스를 정의 할 수 있을까요?
당신은linked_ptr<>
의 템플릿 클래스 본문 내에서 다음과 같은 선언을 사용하여 서로의
linked_ptr<>
친구의 모든 다른 종류를 만들 수 있습니다
U가 T의 하위 항목 인 경우에만 작동해야합니다. 이 방법이 있습니까? –