Top.Mail.Ru
Ответы

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();
}

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Гений
7лет

Нельзя таким способом создавать массив. Надо делать динамический массив.
class Array {
private:
int size1;
int* Arr;

Где-то в коде класса должно быть:
Arr = new int[size1];
Ещё нужен деструктор.

Или можно сделать шаблон (template) с параметром "размер массива".