Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 00:16   #1
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию Классы, запись через оператор []

Пишу какой-нибудь класс, хранящий массив чего-либо. Для удобства перегружаю оператор [ ], но такая запись позволяет лишь считывать данные через этот оператор. Можно ли как-нибудь и запись в объект сделать через [ ] ?
Код:
class SomeClass{
    int *array;
    int size;
public:
    int operator [] (int x){
        return array[x];
    };
};

SomeClass Object;
int a=Object[5]; // очевидно, работает
Object[7]=90; // очевидно, не работает
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 23.05.2011, 00:22   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Granus

Object[7]=90; // очевидно, не работает

очевидно, нужно возвращать ссылку на значение. а не само значение.
Rififi вне форума Ответить с цитированием
Старый 23.05.2011, 00:26   #3
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

да, гениально
привык работать с указателями, про ссылки и забыл совсем
спасибо)
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список через классы Счастлив Visual C++ 0 15.04.2011 19:52
C++ запись квадратного уравнения в один оператор Preidman Помощь студентам 2 16.02.2011 09:35
Решение линейное уравнение, через оператор if.(of 2007 vba) RomkaS19 Microsoft Office Excel 4 14.11.2010 11:08