Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > T& operator * () vs operator T* ()


Автор: null56 29.5.2008, 08:51
Мне важна суть работы этих операторов... В первые увидел это в коде, методом тестов посмотрел результат работы, но вот непонятно где связь в этой перегрузке...


Код

T&   operator  * () 
    {
        return *P;
    }

operator T* () 
    {
        return P;
    }


Вопрос: Почему при

Код

MyType<int> k;

cout << k; // сработает второй

cout << *k; // сработает первый


Просто впервые столкнулся с такой перегрузкой... и я так понял это возможно только в шаблонах?

Спасибо за помощь

Автор: Lazin 29.5.2008, 09:22
Цитата(null56 @  29.5.2008,  08:51 Найти цитируемый пост)

Код

T&   operator  * () 
    {
        return *P;
    }


это оператор разименования


Цитата(null56 @  29.5.2008,  08:51 Найти цитируемый пост)

Код

operator T* () 
    {
        return P;
    }


это оператор приведения к типу Т*

Добавлено через 1 минуту и 4 секунды
Цитата(null56 @  29.5.2008,  08:51 Найти цитируемый пост)
Просто впервые столкнулся с такой перегрузкой... и я так понял это возможно только в шаблонах?

нет, это возможно с любым классом

Добавлено через 2 минуты и 52 секунды
Цитата(null56 @  29.5.2008,  08:51 Найти цитируемый пост)


пожалуйста

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)