我想知道派生具有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
中标记函数。
关于c++ - 具有不同模板参数的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20664305/