Ist es möglich, eine Vorlage als Mitglied anzugeben, aber nicht alle Details? Oder wie kann ich das umgehen?Verwenden Sie Vorlagen als Mitglieder, wenn nicht alle Details bekannt sind
Beispiel funktioniert nicht, aber könnte Ihnen zeigen, was ich erreichen möchte.
template<typename T>
struct Foo {
///blah...
};
struct Bar {
Foo* m_foo;
};
Bar
in diesem Fall ist eine Basisklasse, und in Abhängigkeit von den abgeleiteten Klassen weiß ich, wird nicht alle Einzelheiten Foo
Es gibt eine ziemlich lange Diskussion über Vorlagen und ihre Methoden hier: http://stackoverflow.com/questions/3764912/dynamic-casting-variable-arguments-to-templates. Er wollte auch ein Foo * machen, was man mit Templates nicht machen kann (außer er erbt von einer gemeinsamen Basis). Aber da gibt es einige gute Ratschläge, wie man das erreicht, was ich denke, dass du es brauchst. – Tim
@Tim: Danke für die Hintergrunddiskussion. Ich habe auf jeden Fall die Möglichkeit erwähnt, eine gemeinsame Basis zu verwenden. Glauben Sie, dass ein Teil meiner Antwort unklar ist? –
Ich denke, deine Antwort ist in Ordnung (ich habe dich neu eingestellt). Ich verlinkte die andere Diskussion nur, weil es viel mehr Details (in der Frage und in den Antworten) gibt, einschließlich Codebeispiele. Ich dachte, die zusätzliche Referenz könnte PhilCK helfen (oder jemand anderen, der auf diese Seite trifft). – Tim