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

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

Войти
Регистрация
Восстановить пароль
 
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
#1

Как перегружать оператор -> ? - C++

11.06.2013, 18:06. Просмотров 261. Ответов 1
Метки нет (Все метки)

Доброго времени суток.
Есть класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template<class T>
class Auto_ptr {
public:
    Auto_ptr(T* p) : pointer(p) { }
    ~Auto_ptr() { delete []pointer; }
 
    T& operator*() { return *pointer; }
    
    /*T& operator->() { return *pointer; }*/
 
    T* release() { return pointer; }
 
private:
    T* pointer;
};
Как перегрузить оператор ->, чтобы запись ptr->member (ptr - объект класса Auto_ptr, member - член класс T) была
эквивалента pointer->member?
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2013, 18:06     Как перегружать оператор -> ?
Посмотрите здесь:

как правильно перегружать оператор? - C++
Есть такой класс. class LampaO { private: int svet; int job; int pro; public: LampaO(int voltage=220); int IfJob();

Как правильно перегружать потоковый оператор вывода в файл? - C++
Нужен только прототип оператора, реализацию сделаю сам. Обязательное требование: должна поддерживаться &quot;цепная&quot; форма:...

Как правильно перегружать операторы? - C++
Добрый день. Более-менее освоил Си, и вроде бы неплохо в нем разбираюсь. Решил взяться за плюсы. Помогите разобраться с перегрузкой...

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

Как же все-таки лучше всего перегружать операторы? - C++
1. Нужно ли использовать friend там, где это возможно? (или не стоит злоупотреблять где-нибудь?) 2. Стоит ли при перегрузке бинарного...

какие операторы нельзя перегружать? - C++
какие операторы нельзя перегружать?

Для енама нельзя перегружать операторы? - C++
Для енама нельзя перегружать операторы?

Перегружать операции можно только в пределах какого-то класса? - C++
То есть я не могу просто так взять и написать перегрузку операции вне класса для обычных типов Допустим хочу перегрузить операцию...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * - C++
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Как работает оператор if? - C++
Народ! Операция сравнения возвращает ЧИСЛО, т.е. while и if принимают ЧИСЛО (0 - false, etc - true). Вопрос 1) Почему нельзя записать...

Как определить оператор в С++? - C++
Программа для сортировки шелла массива данных по ключу. #include &lt;iostream&gt; enum { maxlen = 100, maxn = 100 }; struct...

Как перегрузить оператор []? - C++
вообщем есть класс class Point{ private: int color_id, state; public: //constructors Point(); //destructors ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
11.06.2013, 18:37     Как перегружать оператор -> ? #2
PG94,
C++
1
T* operator -> () { return &*pointer; }
Ответ Создать тему
Опции темы

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