sox*_*red 5 c++ inheritance templates
比方说,我们有一个类层次结构,我们有一个通用Animal类,它有几类,从它直接继承(如Dog,Cat,Horse,等..).
在这个继承层次结构上使用模板时,使用SomeTemplateClass<Animal>然后将Dogs and Cats and Horses推入这个模板化对象是否合法?
例如,假设我们有一个模板化的Stack类,我们想要托管各种动物.我能说清楚吗?Stack<Animal> s; Dog d; s.push(d); Cat c; s.push(c);
如果不是你的问题的答案但你可以使用SomeTemplateClass<Animal*>并传递派生类对象的指针.
例如,如果你有一个模板化的Stack类,你想要托管各种动物.你可以简单地做以下事情:
Stack<Animal*> s;
Dog d;
s.push(&d);
Cat c;
s.push(&c)
Run Code Online (Sandbox Code Playgroud)