|
template <class T>
class TMyView
{
}
식으로 선언된 템플릿 클래스가있습니다.
그런데
typedef TMyView<TObject> TMyObject;
식으로 하거나 상속받은 클래스 선언시에 T 에 해당 타입을
클래스를 넘겨줘서
class TMyObject2 : public TMyView<TObject>
처럼 다시 클래스파라미터에 뭔가를 지정을 해서 새로운 클래스 타입을
템플리트로부터 만들어 쓰는데
이걸 클래스 타입을 선언을 안하고 클래스 타입을 파라미터로 놔둔상태로
그 템플리트를 어떤 타입으로 받아서 그대로 사용하고자 합니다.
그러니까 제가 할려는 것은
추상클래스를 템플리트 클래스로 만들고
그 추상클래스에 대한 포인터를 필요로 하는 겁니다.
그런데 템플리트 클래스가 추상형 클래스일때
그것의 포인터를 얻어올수 있는 것이 클래스 타입을 결정하지 않고
가능한가라는 것입니다.
그냥 선언만 하면 가능했었던거 같은데 그걸 실제로 그 추상형 타입으로
인스턴스를 생성(new 추상형 클래스)하거나 하면 실제로 에러가 나면서
안됐던거 같습니다.
추상형 클래스에 대한 선언은 아래처럼 했었습니다.
typedef TMyView<class T> TMyViewTemplate;
그냥 저렇게 선언만 해놓으면 컴파일되는데
실제로
new TMyViewTemplate() 식으로 사용한다거나
이 추상클래스를 상속받은 클래스를 만든후에
TMyViewTemplate 로 형변환을 하는 것등이 되지 않습니다.
결국 추상클래스로 형변환을 해서 상속받은 클래스들의 공통적인
멤버함수를 콜하고 싶은 것인데 이런것에 대해서 무슨 방법이 있는지
알려주세요.
|