Templatepolymorphie
-
Hallo,
ich habe folgendes Problem :struct Base { }; template<typename Type> struct Sub : protected Base { public: Sub<Type>() { } private: Type Test; }; int main(void) { Base *base = 0; Sub<int> *sub = new Sub<int>(); base = sub; }
Der Compiler gibt mir eine Meldung (error C2243: 'Typumwandlung': Konvertierung von 'Sub<Type> *' zu 'Base *' ist bereits vorhanden, aber es kann nicht darauf zugegriffen werden.
with
[
Type=int
]
) aus...
Was bedeutet das ?
Ich verwende VC++ 7.1.
mfg BlueShift
-
Die Vererbung muß "public" sein:
template<typename Type> struct Sub : public Base { ... };
-
hi,
klar, wie dumm von mir...
mfg BlueShift