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

Перегрузить operator* - C++

Восстановить пароль Регистрация
 
Spiderman5
31 / 31 / 14
Регистрация: 07.04.2014
Сообщений: 215
07.09.2014, 23:59     Перегрузить operator* #1
Подскажите, пожалуйста, как использовать operator* в void main в данной программе по аналогии с operator->
Не разобрался полностью в синтаксисе.

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
#include <iostream>
using namespace std;
 
class A
{
public:
    void f()
    {
        cout << "Hi" << endl;
    }
};
 
template <class T>
class Smart
{
private:
    T* ptr;
public:
    Smart(T *p) : ptr(p) {}
    ~Smart() { delete ptr; }
    T* operator->() { return ptr; }
    T operator*() { return *ptr; }
};
 
void main()
{
    Smart<A> sptr(new A);
    sptr->f();  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2014, 23:59     Перегрузить operator*
Посмотрите здесь:

Перегрузить C++
Перегрузить операторы C++
C++ Перегрузить оператор
Перегрузить C++
operator char() или operator int() C++
C++ Перегрузить оператор -
C++ Перегрузить "operator -" так, чтобы из вектора удалялся элемент, присутствующий во втором векторе
Реализация operator + через operator += C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2014, 00:13     Перегрузить operator* #2
C++
1
(*sptr).f();
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.09.2014, 00:55     Перегрузить operator* #3
Цитата Сообщение от Spiderman5 Посмотреть сообщение
C++
1
T operator*() { return *ptr; }
тип возвращаемого должен быть ссылкой
Yandex
Объявления
08.09.2014, 00:55     Перегрузить operator*
Ответ Создать тему
Опции темы

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