可以说我有一个使用另一个类作为功能的类。
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/