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

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

Восстановить пароль Регистрация
 
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
23.09.2013, 23:36     Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него? #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]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2013, 23:36     Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него?
Посмотрите здесь:

C++ перегруженный оператор <<
Как получить объект (не указатель), используюя перегруженный new? C++
C++ Как убрать символ новой строки, применяя перегруженный оператор <<?
Стоит ли использовать тернарный оператор, если всегда есть альтернативы в С ? C++
Как для класса написать перегруженный оператор new? C++
C++ Перегруженный оператор
Можно ли передать в функцию указатель на перегруженный оператор? C++
C++ Шаблон, вложенный в него класс и оператор вывода

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6171 / 2900 / 283
Регистрация: 04.12.2011
Сообщений: 7,710
Записей в блоге: 3
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;
}
Yandex
Объявления
23.09.2013, 23:50     Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него?
Ответ Создать тему
Опции темы

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