C++ Что не так с кодом? 12 строка ошибка " a nonstatic member reference must be relative to a specific object"
class Array {
private:
int size1;
int Arr[size1];
double summary;
public:
void setArr(int arr[], int size) {
size1 = size;
int i;
double sum(0);
for (i = 0; i < size; i++) {
arr[i] = rand() % 20 + 1;
Arr[i] = arr[i];
sum += arr[i];
summary = sum;
}
}
void getArr() {
int i;
for (i = 0; i < size1; i++) {
cout << i + 1 << ". " << Arr[i] << endl;
}
cout << "Среднее-арифметическое: " << summary / size1 << endl;
}
};
int main() {
setlocale(0, "Russian");
int size;
cin >> size;
int* Arr = new int[size];
Array obj;
obj.setArr(Arr, size);
obj.getArr();
delete[]Arr;
_getch();
}
Нельзя таким способом создавать массив. Надо делать динамический массив.
class Array {
private:
int size1;
int* Arr;
Где-то в коде класса должно быть:
Arr = new int[size1];
Ещё нужен деструктор.
Или можно сделать шаблон (template) с параметром "размер массива".