Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nchameleon
2 / 2 / 1
Регистрация: 06.04.2010
Сообщений: 163
#1

operator[] в классе - C++

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

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

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2011, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос operator[] в классе (C++):

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

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

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

Ошибка при перегрузке "operator ==" в классе - C++
Если объявляю operator== в классе, то ошибка слишком много параметров для функции оператора #include &lt;iostream&gt; class comp {...

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

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

5
igorrr37
1663 / 1291 / 143
Регистрация: 21.12.2010
Сообщений: 1,969
Записей в блоге: 9
09.02.2011, 18:02 #2
C++
1
int k = (*asd)[s];
1
lemegeton
2927 / 1356 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
09.02.2011, 18:04 #3
Так, что-ли?
C++
1
int k = (*asd)[s];
1
igorrr37
1663 / 1291 / 143
Регистрация: 21.12.2010
Сообщений: 1,969
Записей в блоге: 9
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
nchameleon
2 / 2 / 1
Регистрация: 06.04.2010
Сообщений: 163
10.02.2011, 13:46  [ТС] #5
как-то не подумал))) про
C++
1
 (*asd)[i]
0
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
10.02.2011, 14:31 #6
можно
C++
1
asd->operator[](i);
0
10.02.2011, 14:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2011, 14:31
Привет! Вот еще темы с ответами:

Вызов operator[] через operator[] const - C++
Перелистывал Майерса, наткнулся на код, подскажите пожалуйста почему он советует закомментированный вариант кода, не проще сделать как...

Реализация operator + через operator += - C++
внутри следующей темы возник вопрос, ответ на который так и не был получен: ...

Operator +, operator += — какой через какой реализовывать? - C++
Для class Fraction { // ... public: Fraction operator + ( const Fraction&amp; right ) const; Fraction&amp; operator += ( const...

В классе инициализировать массив, в классе создать функцию вывода массива на экран - C++
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy: Задача: В классе инициализировать массив, в классе создать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.