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

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

Войти
Регистрация
Восстановить пароль
 
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
#1

Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него? - C++

23.09.2013, 23:36. Просмотров 493. Ответов 1
Метки нет (Все метки)

Это указатель на класс
C++
1
figure *f
Это перегрузка оператора
C++
1
2
3
4
void figure::operator [] (int i)
{
    cout << "(" << massiv[i-1].x << "," << massiv[i-1].y << ")" << endl;
}
В нужный момент вызываю оператор, но пишет, что он без побочного эффекта, и ничего не выводит
C++
1
f[i]
Добавлено через 11 минут
Сам разобрался, надо было
C++
1
(*f)[i]
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2013, 23:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него? (C++):

Можно ли передать в функцию указатель на перегруженный оператор? - C++
Снова здравствуйте) Можно ли передать в функцию указатель на перегруженный оператор и как? Что-то типа: class f { ... ...

Найти дистанцию между точками на плоскости (использовать перегруженный оператор) - C++
Необходимо найти дистанцию между точками на площади, используя перегруженный оператор. #include &lt;iostream&gt; using namespace std; ...

Класс для работы с матрицами - Что дает перегруженный оператор индексирования? - C++
Есть работающая программа, которая имеет: конструктор с параметрами, который заполняет матрицу псевдослучайными числами конструктор...

Нужно ли реализовать также отдельно конструктор копирования, если имеется перегруженный оператор присваивания? - C++
у меня есть класс. и прототип перегруженной операции присваивания some_class&amp; some_class::operator=(const some_class&amp; some_object); ...

Как получить объект (не указатель), используюя перегруженный new? - C++
Например, этот код показывает, что мы получаем указатель, а не объект. В итоге потом неудобный синтаксис (&quot;-&gt;&quot; вместо &quot;.&quot;), невозможность...

Как для класса написать перегруженный оператор new? - C++
пробую таким способом, но ошибка class X { public: X(int x) :mX(x) { } void SetX(int x) { mX=x; } int GetX() const ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6471 / 3119 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
23.09.2013, 23:50 #2
Цитата Сообщение от Sammm Посмотреть сообщение
Сам разобрался, надо было
Да, это плодотворная идея, - ещё одни скобки и Ok:
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
27
28
29
30
31
32
33
#include <iostream>
#include <windows.h>
using namespace std;
class A{
static int Arr[10];//что бы проверить оператор
public:
    A(){}
    int operator[](int ind){
        if(ind < 0 || ind > 10){
cout<<"Индекс "<<ind<<" за пределами массива"<<endl;    
    system("pause");
    exit(1);
        }
cout<<"Arr["<<ind<<"] = "<<Arr[ind]<<endl;
return Arr[ind];
    }
};
int A::Arr[]={1,2,3,4,5,6,7,8,9,10};
 
int main()
 {
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
 
    A a_obj;
    A *a = &a_obj;
 
int a3 = 0;
a3 = (*(a))[3];
a3 = a->operator [](5);//очень смешной вариант)
cout<<endl;    
    system("pause");
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2013, 23:50
Привет! Вот еще темы с ответами:

Как убрать символ новой строки, применяя перегруженный оператор <<? - C++
Друзья! Ну то есть формируются строки хитрым способом (не вручную, лучше не углубляться в это) Потом получаю вектор этих строк. Надо...

Шаблон, вложенный в него класс и оператор вывода - C++
Добрый день, делаю учебное задание. надо сделать шаблон стека с использованием односвязного списка. Сделал вот такую функцию: ...

перегруженный оператор << - C++
подскажите как перегрузить оператор &lt;&lt; для класса как описать само перегружение friend ostream&amp; operator &lt;&lt; (ostream &amp;c, const...

Перегруженный оператор - C++
MathClass = Harry; Раньше я думал, что перегрузка - это предоставление оператору функций, которых, он изначально не имел. Что...


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

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

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