gpt4 book ai didi

c++ - C++为我的新对象包装子对象数组的正确方法?

转载 作者:行者123 更新时间:2023-12-02 10:26:50 29 4
gpt4 key购买 nike

class myObject{
private:
subOBJ* subList;
int size

public:
myObject(subOBJ list[]);
}
例如,我的对象看起来像这样,我想创建一个对象,该对象将通过传入的 subOBJs数组来执行某些操作。
myObject::myObject(subOBJ list[])
{
size = sizeof(list);
subList = new subOBJ[size];
for(int i=0; i< size; i++){
subList[i] = list[i];
}
}
这样设计我的构造函数是否正确,所以假设传入的 subOBJs数组有效。

最佳答案

在C++中,大多数情况下不需要使用指针。已经有可以为您解决这些问题的类(class)。例如std::array<T>std::vector<T>

myObject(subOBJ list[]);
您至少需要一个附加参数:数组中元素的长度/数量。
在C++中,将数组传递给函数不会传递该数组,但会传递第一个元素的地址。
不可能知道数组传递给函数的大小。因此,为什么需要向其传递第二个参数长度(元素数)。
我建议使用 vector<subOBJ>(大小在运行时确定)甚至 array<subOBJ>(如果大小在编译时已知)。

关于c++ - C++为我的新对象包装子对象数组的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64056438/

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