可以说我有班级,使用另一个班作为功能。如何确保仅在C++中提供特定的类功能?
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',你可以使用智能点,比如'std :: unique_ptr'。 – songyuanyao
@songyuanyao:你不需要也不需要动态分配。 –
@BoundaryImposition它取决于OP的意图;或者你的意思是我们应该总是使用'std :: optional'而不是智能指针? – songyuanyao