c – 构造函数和对象的成员变量初始化
发布时间:2020-12-16 06:51:42 所属栏目:百科 来源:网络整理
导读:说我有以下代码: 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);} 考虑到结构允许除了使用构造函数之外无法设置轮
说我有以下代码:
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代码的起始基数具有Key-Value对类,只有setKey方法而没有setValue方法.所以我基本上必须通过调用构造函数来赋值,并且不确定使用{}或classname(Key,Value)进行赋值是否存在差异. 解决方法
在这种情况下,两种方式都是相同的,因为最终将调用Car的copy-assignment运算符,默认情况下由编译器提供.
如果您的目的只是为了分配一些Car的对象并用一些初始默认值初始化它们,那么为什么不在这种情况下使用std :: vector, std::vector<Car> cars(10,Car(4,4)); 但是上面的方法不会在堆上分配内存,但你可能会考虑它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |