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

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

Войти
Регистрация
Восстановить пароль
 
Spiderman5
31 / 31 / 14
Регистрация: 07.04.2014
Сообщений: 219
#1

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

07.09.2014, 23:59. Просмотров 204. Ответов 2
Метки нет (Все метки)

Подскажите, пожалуйста, как использовать 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();  
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2014, 23:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузить operator* (C++):

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

Перегрузить operator<<() для шаблонного класса (перегрузка оператора вывода) - C++
Здравствуйте. Перегружаю оператор вывода для шаблонного класса. using namespace std; template &lt;class Element&gt; class List { ...

Перегрузить operator*() для перемножения матриц (объекты пользовательского типа Matrix) - C++
Помогите доделать программу. Там нужно всего пару ошибок исправить... У меня уже мозг взрывается((( Перегрузить операцию &quot;*&quot; для...

Перегрузить "operator -" так, чтобы из вектора удалялся элемент, присутствующий во втором векторе - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; typedef unsigned int...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2014, 00:13 #2
C++
1
(*sptr).f();
1
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.09.2014, 00:55 #3
Цитата Сообщение от Spiderman5 Посмотреть сообщение
C++
1
T operator*() { return *ptr; }
тип возвращаемого должен быть ссылкой
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2014, 00:55
Привет! Вот еще темы с ответами:

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

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

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

Чем "operator *=" отличается от "operator *"? - C++
снова застряла, не могу понять, чем этот оператор должен отличаться от оператора*.....? вот он, но это работает только в случае...


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

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

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