c++ - 具有不同模板参数的继承

标签 c++ inheritance

我想知道派生具有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/

相关文章:

c++ - Qt 判断 QSpinBox 是否被用户更改

perl - 如何重新分类 Perl 对象

具有多重继承的 XML 模式

c++ - 为什么使用 std::type_index 而不是 std::type_info*

c++ - 在不同的计算机上运行 Qt 应用程序

c++ - 从取消引用的迭代器返回 std::map<std::string, int> 时发生巨大内存泄漏

java - Java中从子类实例调用类的泛型方法返回实例的类的误解

python - 在类之间传递 tkinter Canvas ,而不从父级内部调用子级

entity-framework - 域实体跟踪数据的最佳实践?基类还是组合?

c++ - 哪些贪婪的初始化列表示例潜伏在标准库中?