|
빵기계는 씨빌더겠죠..
제 말은 그것이 아니라 빵에 해당하는 부모클래스가 템플리트 클래스일 때
그것의 빵의 클래스에 대한 포인터를 얻어올수 없냐는 것인데
다시한번 생각해 보시고 답변을 부탁드립니다.
할수있는건지 없는건지..
예를들어
class TBread
{
}
class TWhiteBread: public TBread
{
}
class TRedBread: public TBread
{
}
이라면
TBread * bread;
로 포인터형으로 얻을수 있을 텐데
TBread 가 Template 클래스일 때 포인터를 얻을수 있느냐는 겁니다.
목적은 TBread 안의 멤버함수를 TWhiteBread, TRedBread 에 대해
콜 할수있도록 하기 위해서..
치즈 님이 쓰신 글 :
: template <class T>
: class TMyView
: {
: }
:
: 식으로 선언된 템플릿 클래스가있습니다.
: 그런데
:
: typedef TMyView<TObject> TMyObject;
:
: 식으로 하거나 상속받은 클래스 선언시에 T 에 해당 타입을
: 클래스를 넘겨줘서
:
: class TMyObject2 : public TMyView<TObject>
: 처럼 다시 클래스파라미터에 뭔가를 지정을 해서 새로운 클래스 타입을
: 템플리트로부터 만들어 쓰는데
:
: 이걸 클래스 타입을 선언을 안하고 클래스 타입을 파라미터로 놔둔상태로
: 그 템플리트를 어떤 타입으로 받아서 그대로 사용하고자 합니다.
:
: 그러니까 제가 할려는 것은
: 추상클래스를 템플리트 클래스로 만들고
: 그 추상클래스에 대한 포인터를 필요로 하는 겁니다.
:
: 그런데 템플리트 클래스가 추상형 클래스일때
: 그것의 포인터를 얻어올수 있는 것이 클래스 타입을 결정하지 않고
: 가능한가라는 것입니다.
:
: 그냥 선언만 하면 가능했었던거 같은데 그걸 실제로 그 추상형 타입으로
: 인스턴스를 생성(new 추상형 클래스)하거나 하면 실제로 에러가 나면서
: 안됐던거 같습니다.
:
: 추상형 클래스에 대한 선언은 아래처럼 했었습니다.
:
: typedef TMyView<class T> TMyViewTemplate;
:
: 그냥 저렇게 선언만 해놓으면 컴파일되는데
: 실제로
: new TMyViewTemplate() 식으로 사용한다거나
:
: 이 추상클래스를 상속받은 클래스를 만든후에
: TMyViewTemplate 로 형변환을 하는 것등이 되지 않습니다.
: 결국 추상클래스로 형변환을 해서 상속받은 클래스들의 공통적인
: 멤버함수를 콜하고 싶은 것인데 이런것에 대해서 무슨 방법이 있는지
: 알려주세요.
:
:
|