我想拥有一个从虚拟类(例如MAP)继承的类(例如ATLAS),以便可以在ATLAS的构造函数中指定MAP的一种特化(例如physicalMap或politicalMap) )。我想知道C++是否有可能?
class map {...};
class physicalMap: public virtual map {...};
class politicalMap: public virtual map {...};
class atlas: public virtual map {
atlas(int i): physicalMap(){...}
atlas(inti, int j): politicalMap(){...}
...
};
如何指定我想要的特化?
最佳答案
您不能将构造函数委派给“姐妹”(继承相同基类的类)类构造函数。
但是,对于模板,您可以从template参数继承并执行类似的操作:
class map {...};
class physicalMap: public virtual map {...};
class politicalMap: public virtual map {...};
template<typename Map>
class atlas: public virtual Map {
atlas(int i): Map(){...}
...
};
...
atlas<physicalMap> a;
...
关于c++ - 从虚拟类继承并在构造期间指定它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44021097/