Форум программистов, компьютерный форум CyberForum.ru

присвоение значения элементу векторного класса - C++

Восстановить пароль Регистрация
 
Олег Шалаев
Сообщений: n/a
09.10.2009, 18:31     присвоение значения элементу векторного класса #1
Написал я класс для массива (значений функции на отрезке):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class DoubleArray {
public:
....
  double operator[] (int index);
  DoubleArray operator= (const DoubleArray &rhs);
  DoubleArray operator+ (DoubleArray a);
....
  explicit DoubleArray (int sz = DefaultArraySize);
  DoubleArray (double *array, int array_size);
  DoubleArray (const DoubleArray &rhs);
  ~DoubleArray () {delete[] ia;};
private:
  int _size;
  double *ia;
  static const int DefaultArraySize = 1;
};
...
double DoubleArray::operator[] (int index) { assert(index >= 0 && index < _size); return ia[index];}
<-- эта функция читает элементы моего массива, например
double a1[4]={0.1,1.2,2.3,3.4};
DoubleArray b1(a1,4);
double thisValue=b1[2]; // <-- третий элемент=2.3
Вопрос: как мне красиво присвоить элементу моего массива новое значение?
Красиво -- это так: b1[3]=thisValue;
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2009, 18:31     присвоение значения элементу векторного класса
Посмотрите здесь:

C++ Присвоение значения переменной из функции
Присвоение указателю члену класса нового адреса, ошибка компиляции C++
C++ Присвоение значения переменной в классе
Присвоение значения элементов в матрице C++
присвоение значения C++
Присвоение значения указателю C++
C++ Присвоение значения случайному элементу массива
C++ Присвоение значения слову char
Присвоение значения переменной класса через конструктор C++
C++ Присвоение значения элементу списка
C++ Встроенная функция вектора из векторного класса
Присвоение числу текстового значения C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
09.10.2009, 18:41     присвоение значения элементу векторного класса #2
C++
1
2
3
double &operator[] (int index);
.............
double &DoubleArray::operator[] (int index) { assert(index >= 0 && index < _size); return ia[index];}
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,315
09.10.2009, 18:50     присвоение значения элементу векторного класса #3
На самом деле здесь нужна пара функций:
C++
1
2
double operator[](int index) const;  // для чтения
double& operator[](int index);  // для записи
Олег Шалаев
Сообщений: n/a
09.10.2009, 19:26     присвоение значения элементу векторного класса #4
Спасибо CheshireCat, но g++ ругается если я добавлю вторую функцию:
doubleArray.h:8: error: ‘double& DoubleArray::operator[](int)’ cannot be overloaded
doubleArray.h:7: error: with ‘double DoubleArray::operator[](int)’
Правильный код подсказал ISergey:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class DoubleArray {
public:
....
double& operator[] (int index); // <-- добавил сюда амперсанд
DoubleArray operator= (const DoubleArray &rhs);
DoubleArray operator+ (DoubleArray a);
....
explicit DoubleArray (int sz = DefaultArraySize);
DoubleArray (double *array, int array_size);
DoubleArray (const DoubleArray &rhs);
~DoubleArray () {delete[] ia;};
private:
int _size;
double *ia;
static const int DefaultArraySize = 1;
};
...
double& DoubleArray::operator[] (int index) { assert(index >= 0 && index < _size); return ia[index];} // <-- добавил сюда амперсанд
double a1[4]={0.1,1.2,2.3,3.4};
DoubleArray b1(a1,4);
double thisValue=b1[2];
b1[3]=thisValue;
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,315
09.10.2009, 21:36     присвоение значения элементу векторного класса #5
Цитата Сообщение от Олег Шалаев Посмотреть сообщение
Спасибо CheshireCat, но g++ ругается если я добавлю вторую функцию......
Ну эт естессно, что ругается. Ты квалификатор const забыл.
Yandex
Объявления
09.10.2009, 21:36     присвоение значения элементу векторного класса
Ответ Создать тему
Опции темы

Текущее время: 05:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru