class Dynarr
{
private:
double * arr;
int size;
public:
double & operator[](int pos) {
cout << " hey " << size << endl;
return arr[pos];
};
Dynarr * operator=(Dynarr * rhs) {
*this = Dynarr(rhs->size, rhs->arr);
};
};
int main()
{
double * darr = new double[5];
darr[0] = 0;
darr[1] = 1;
darr[2] = 2;
darr[3] = 3;
darr[4] = 4;
Dynarr * arrr1 = new Dynarr(5, darr);
cout << arrr1[1] << endl;
system("pause");
return 0;
}
Как в строке
cout << arrr1[1] << endl;
обратиться ко второму элементу массива arr
?
Вариантов, собственно, два: как вам уже написали,
(*arr1)[1]
и
arr1->operator[](1)
Но я бы еще хотел заметить, что стоит иметь два перегруженных оператора - один для константного объекта:
double & operator[](int pos)
{
cout << " hey " << size << endl;
return arr[pos];
};
double operator[](int pos) const
{
cout << " hey " << size << endl;
return arr[pos];
};
Ну и - неплохо бы проверять, не выходит ли pos
за границы массива.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В общем есть функция, в которой идет ввод string-строки через std::getline(); Вызывая эту функцию несколько раз подряд, первая строка записывается пустой,...
Download libsodium from https://githubcom/jedisct1/libsodium but can't connect to my project