繁体   English   中英

具有不同模板参数的继承

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM