[英]Inheritance with different template parameters
我想知道派生具有STL容器但模板化参数不同的类时是否存在任何问题。 换一种说法:
基类:
class GridCell {
//....
std::vector<Coord> getNeighbours(const int * coord);
//....
}
派生类:
class GridCell2D {
//....
std::vector<Coord2D> getNeighbours(const int * coord);
//....
}
class GridCell3D {
//....
std::vector<Coord3D> getNeighbours(const int * coord);
//....
}
多态性能否与getNeighbours函数一起正常工作? 谢谢!
不,这是行不通的。
如果参数列表具有相同的类型,则只能继承函数。 是的,您的情况是对的。
但是返回类型也必须相关。 通常情况下,他们应该是相同的类型,但相关类型是允许的。 松散地说,如果类型属于同一继承层次结构,则它们是相关的 。 但事实并非如此。
请注意,要启动继承,您需要在基类virtual
标记该函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.