gpt4 book ai didi

c++ - 如何确保仅在 C++ 中提供时才使用特定的类功能?

转载 作者:行者123 更新时间:2023-11-27 22:45:30 25 4
gpt4 key购买 nike

假设我有一个类使用另一个类作为功能。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com