关于C++的有关疑问,望解答

用new运算符动态分配一个长度为n的整型数组(n值由键盘输入),并给该数组随机赋上100以内的整数,输出数组。定义函数求数组的最大值,最大值由参数带回,调用求数组内最大值的这个函数,并输出最大值,最后删除所申请空间。

结果出现了这种错误。

img

仅供参考!

```c++
using namespace std;

// 申请动态数组 
int* GetArray(int n)
 { 
int *array = new int[n];
 for (int i = 0; i < n; i++)
 {
 array[i] = rand() % 100;
 } 
return array;
 }

// 求数组最大值
 int FindMax(int *array, int n) {
 int max = array[0]; 
for (int i = 1; i < n; i++)
 { 
if (array[i] > max) 
max = array[i]
; }
 return max; 
}

int main()
 { 
int n; 
cout << "请输入数组长度:";
cin >> n; 
int *array = GetArray(n); 
cout << "数组元素:";
 for (int i = 0; i < n; i++)
{ 
cout << array[i] << " ";
 }
 cout << endl;

int max = FindMax(array, n);
cout << "数组最大值:" << max << endl;

delete[] array;
array = NULL;
return 0;
}

```

你创建Ann对象时传参不符合类Ann要求的类型

你构造函数咋定义的啊?参数类型是什么呢?

该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个错误可能是因为你在创建Ann对象时没有提供正确的构造函数参数。

根据你的问题描述,你应该需要一个可以接受整数数组的构造函数来创建Ann对象。假设你的Ann类如下所示:

class Ann {
public:
    Ann(int* arr, int n) {
        // 在构造函数中对数组进行操作
    }
    // 其他成员函数和数据成员
};


那么你可以按照以下方式使用new运算符来创建Ann对象:

int n;
std::cout << "请输入数组大小: ";
std::cin >> n;

// 动态分配长度为n的整型数组,并赋上100以内的随机整数
int* arr = new int[n];
for (int i = 0; i < n; i++) {
    arr[i] = rand() % 100;
}

// 创建Ann对象
Ann* ann = new Ann(arr, n);

// 调用求最大值函数
int max = ann->findMax();
std::cout << "最大值为: " << max << std::endl;

// 删除动态分配的数组和对象
delete[] arr;
delete ann;


请注意,在上面的示例代码中,findMax()是一个Ann类的成员函数,用于在数组中查找最大值并返回。你需要根据你自己的实现修改这个函数的定义和实现。

好的!!我发现我的问题!我删除了结构体!