gpt4 book ai didi

c++ - 通过函数c++填充指针数组

转载 作者:行者123 更新时间:2023-11-28 03:19:23 26 4
gpt4 key购买 nike

你好,我创建了 gabka 类和一个函数 f1,我想向其传递一个指针数组以用 gabka 填充该数组> 对象,但出现奇怪的错误。如何纠正?

错误:

cannot convert from gabka to int

代码:

#include <iostream>
using namespace std;
const int n = 4;
class gabka {
public:
float woda;

gabka(){
woda = 0;
}

void f1(gabka t[n]){
for(int i = 0; i < n; i++){
t[i] = new gabka();
}
}
};

int main() {
gabka** t = new gabka*[n];

return 0;
};

最佳答案

您的 f1 函数接受一组 gabka 对象,并且您试图为每个对象分配一个 gabka*。您需要决定要传递给 f1 的内容。例如,

void f1(gabka t[n]){
for(int i = 0; i < n; i++){
t[i] = gabka(); // assign default constructed gabkas
}
}

void f1(gabka* t[n]){
for(int i = 0; i < n; i++){
t[i] = new gabka();
}
}

在后一种情况下,请记住您必须对 t 的所有元素调用 delete

不清楚您打算用您的代码做什么,但作为一般规则,在 C++ 中您应该避免原始指针和手动动态分配。优先使用标准库容器,而不是动态分配数组或动态分配对象的数组。

关于c++ - 通过函数c++填充指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15904496/

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