Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 5
Регистрация: 06.04.2010
Сообщений: 176
1

operator[] в классе

09.02.2011, 17:37. Показов 1388. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал собственный класс, где хранит одномерный массив

C++
1
2
3
4
5
6
7
8
template <class TTT>
public class List_TTT
{
public:
    TTT * data;
    int len;
    TTT& Get(int H) {return data[H];} // 
    TTT& operator[](int H) { return data[H]; }
но вот в коде не получается использовать индекс из-за того, что я размешаю его в куче
C++
1
2
List_TTT<int> * asd = new List_TTT<int>();
int k = asd[s];
// операция [] воспринимается как ссылка на класс индекса s, а я хочу возвращать значение в классе

чтобы вы могли бы порекомендовать в этом случае, кроме использование стандартных функции
и второй вопрос есть ли такой оператор TTT& operator()(int H) { return data[H]; }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2011, 17:37
Ответы с готовыми решениями:

Перегрузка operator>> и operator<< в абстрактном классе
Здрасьте! Есть необходимость перегрузить потоки, Я знаю как это сделать через friend, но вот...

Перегрузить операторы operator+() и operator*() в пользовательском классе "Комплексное число"
Здравствуйте. Предлагаю заняться арифметикой. Создал прослейший класс, перегрузил операторы...

Перегрузка operator [] в классе
Доброе всем! как перегрузить оператор , чтобы иметь возможность записывать туда значения?...

Operator int() в классе Строка
Приведите пример, пожалуйста, как воспользоваться данной перегрузкой операции в main. String.h...

5
2848 / 1997 / 986
Регистрация: 21.12.2010
Сообщений: 3,705
Записей в блоге: 10
09.02.2011, 18:02 2
C++
1
int k = (*asd)[s];
1
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
09.02.2011, 18:04 3
Так, что-ли?
C++
1
int k = (*asd)[s];
1
2848 / 1997 / 986
Регистрация: 21.12.2010
Сообщений: 3,705
Записей в блоге: 10
09.02.2011, 18:06 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
 
template <class TTT>
class List_TTT{
    public:
        TTT * data;
        int len;
        List_TTT(int a):len(a){
            data=new TTT[len];
        }
 
        TTT& Get(int H) {return data[H];} //
        TTT& operator[](int H) { return data[H]; }
        TTT& operator()(int H) { return data[H]; }
};
 
int main(){
    List_TTT<int> *asd = new List_TTT<int>(5);
    (*asd)(0)=5;
    int k = (*asd)(0);
    cout<<k;
    (*asd)[0]=7;
    k = (*asd)[0];
    cout<<k;
}
1
2 / 2 / 5
Регистрация: 06.04.2010
Сообщений: 176
10.02.2011, 13:46  [ТС] 5
как-то не подумал))) про
C++
1
 (*asd)[i]
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
10.02.2011, 14:31 6
можно
C++
1
asd->operator[](i);
0
10.02.2011, 14:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2011, 14:31
Помогаю со студенческими работами здесь

Перегрузка оператора operator+() в пользовательском классе (сложение строк)
Хотел научить класс складывать строки, но на моменте освобождения памяти temp происходит ошибка. ...

Ошибка при перегрузке "operator ==" в классе
Если объявляю operator== в классе, то ошибка слишком много параметров для функции оператора ...

Перегрузка операторов operator> и operator* для чисел в разных системах счисления
Мне нужно Перегрузить операции&gt; (сравнение двух целых чисел с учетом системы счисления), *...

Почему в данном случае используется operator int, а не operator double?
Вот программа using System; class ThreeD { int x, y, z; // трехмерные координаты ...

Class & operator's |Error: undefined reference to operator
Компилирует нормально, но когда хочу использовать оператор выдает ошибку:undefined reference to...

operator char() или operator int()
Здорова госпдо! Снова ничо не ясно как всегда. Разбираю программку из книги Страуструпа, там он...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru