이런 경우엔 어떻게 해야하죠?

글쓴이: 익명 사용자 / 작성시간: 월, 2017/09/11 - 5:26오전
간단하게 요약하자면
template
A {
A *p, *n;
T* p;
};
template
B {
B *p, *n;
T p;
};
이 두 클래스의 부모 클래스를 만들고 싶었는데요.
template class C 를 만들어서
A : public C
B : public C
와 같이 상속받게 하고 싶었어요...
근데 뜻밖의 문제가 있다면
자기참조형 포인터 p, n이 부모의 타입(C*)을 그대로 쓴다는 거였죠.
... 자기참조형 포인터라 템플릿 인자로 넣기엔 모순이 생기고,
... 모든함수를 가상함수로 바꾸는 것도 조금 그렇고...
혹시나 해서 decltype(this) 라는 괴상한 타입을 상상해봤는데 ... 그건 좀 아니었고요.
다시 요약하자면
멤버변수 중 자기참조형 포인터를 템플릿으로 상속하는 건... 불가능한가요?
Forums:
아니이럴수가...
템플릿 문법이 안보이네요. html 태그로 취급됬나봐요... ㅜㅠ 질문방향이랑 크게 영향이 없어서 다행이네요
아니이럴수가...
한글에도 오타가... 질문방향에 크게 영향이 없어서 다행이네요
https://kldp.org/node/158191
https://kldp.org/node/158191 이렇게 하셔요.
세벌 https://sebuls.blogspot.kr/
Curiously recurring template pattern
이게 도움이 될 것 같네요.
댓글 달기