gpt4 book ai didi

c++ - 构造函数和对象成员变量初始化

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:21:57 26 4
gpt4 key购买 nike

假设我有以下代码:

struct Car{

public:
Car(){}
Car(int w, int d){
wheels = w;
doors = d;
}
private:
int wheels;
int doors;
};

int main(){
Car *cars = new Car[10];
cars[0] = {4, 4};
cars[1] = Car(4, 4);
}

考虑到除了使用构造函数之外,该结构不允许设置车轮和门的值,哪种方法是为汽车数组赋值的更好方法?上面代码的最后两行有什么区别吗?

我目前正在为学校开发哈希表实现,所提供的 c++ 代码的起始基础有一个键值对类,只有一个 setKey 方法,没有 setValue 方法。所以我基本上必须通过调用构造函数来赋值,并且不确定使用 {} 或 classname(Key, Value) 进行赋值之间是否存在差异。

最佳答案

在这种情况下,两种方式都是相同的,因为最终 Carcopy-assignment 运算符将被调用,这是编译器默认提供的。

如果您的目的只是分配 Car 的一些对象并使用一些初始默认值初始化它们,那么在这种情况下为什么不使用 std::vector

std::vector<Car> cars(10, Car(4,4));

但是上面的方法不会在堆上分配内存,但你可以考虑一下。

关于c++ - 构造函数和对象成员变量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613491/

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