假设我有一个类使用另一个类作为功能。
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
作为标志来确定大小写。我试图避免这种情况,因为为此我必须进行新建和删除。
有什么优雅的方法可以做到这一点吗?
最佳答案
如果默认构造的RailRoad
不是太昂贵,您可以使用:
std::pair<bool, RailRoad> optionalRailroad;
理解为成员变量
optionalRailroad.first == false
暗示该对象是在没有 RailRoad
和
optionalRailroad.first == true
表示该对象是使用 RailRoad
关于c++ - 如何确保仅在 C++ 中提供时才使用特定的类功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43533181/