可以说我有一个使用另一个类作为功能的类。

class city{

    void travel(){
        // if rail road travel by rail

        // if no rail road travel by foot
    }

private:
   RailRoad rails;
};


当我实例化城市

案例1:我可以有铁路的城市。

情况2:我也可以拥有没有铁路的城市。

我以为是使用RailRoad * rails并使用nullptr作为标志来确定大小写。我试图避免这种情况,因为为此,我必须执行new和delete。

有什么优雅的方法可以做到这一点吗?

最佳答案

如果默认构造的RailRoad不太昂贵,则可以使用:

std::pair<bool, RailRoad> optionalRailroad;


作为成员变量,并了解

optionalRailroad.first == false


表示该对象创建时没有RailRoad并且

optionalRailroad.first == true


表示该对象是使用RailRoad创建的

关于c++ - 如何确保仅在c++中提供时才使用特定的类功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43533181/

10-11 04:00