0 / 0 / 0
Регистрация: 24.08.2015
Сообщений: 18
1

Перегрузка оператора cout

24.08.2015, 09:25. Показов 891. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, коллеги!

Помогите разобраться с проблемой - не получается перегрузить оператор cout. Получается так:

mytype.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <sstream>
 
 
class MyInt
{
    friend std::ostream & operator<<(std::ostream & os, const MyInt & myint);
public:
    MyInt();
    MyInt(int num);
    MyInt(const MyInt & myint);  // copy constructor
    ~MyInt();
 
    int MyIntNum;
};
mytype.cpp
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 "mytype.h"
 
MyInt::MyInt()
{
}
 
MyInt::~MyInt()
{
}
 
MyInt::MyInt(int num)
{
    MyIntNum = num;
}
 
MyInt::MyInt(const MyInt & myint)
{
    MyIntNum = NULL;
    if(myint.MyIntNum != NULL)
    {
        MyIntNum = myint.MyIntNum;
    }
}
 
std::ostream& MyInt::operator <<(std::ostream& os, const MyInt& myint)
{
    os<<myint.MyIntNum;
    return os;
}
При компиляции выдает ошибку:

Ошибка 1 error C2039: <<: не является членом "MyInt"
2 IntelliSense: class "MyInt" не содержит члена "operator<<"

Чет не могу въехать в чем дело...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2015, 09:25
Ответы с готовыми решениями:

перегрузка оператора cout
Ребята привет! подскажите как перегрузить cout, если нужно вывести в консоль сумму двух объектов?...

Перегрузка оператора cout
Перегрузка оператора cout язык C++. Я убираю в парметрах ссылку на новый объект и тогда все норм...

Глобальная перегрузка оператора << для cout
Как можно глобально перезагрузить этот оператор для cout ? + его перезагрузка должна зависить от...

Перегрузка cout
Всем привет ! Есть клас class person { private: string name; string surname;...

4
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,621
24.08.2015, 09:46 2
В секцию public перенеси оператор и MyInt убери:
C++
1
2
3
4
5
std::ostream& operator <<(std::ostream& os, const MyInt& myint)
{
os<<myint.MyIntNum;
return os;
}
1
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
24.08.2015, 09:56 3
Что за боевой раскрас индейцев?
Есть теги для выделения кода:
1
0 / 0 / 0
Регистрация: 24.08.2015
Сообщений: 18
24.08.2015, 11:20  [ТС] 4
nmcf,
большое спасибо - теперь всё работает!
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.08.2015, 11:26 5
Цитата Сообщение от nmcf Посмотреть сообщение
В секцию public перенеси оператор
Это совершенно не обязательно. Дружественная функция может быть объявлена в любой секции.
2
24.08.2015, 11:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.08.2015, 11:26
Помогаю со студенческими работами здесь

Перегрузка cin/cout
Надо перегрузить операторы для некого класса. У меня есть два базовых класса, в одном 2 поля, в...

перегрузка cout, operator<<
Как реализовано, что можно перегрузить operator&lt;&lt; в потоке вывода, если нету объявления нужной...

Производный класс. Перегрузка << (cout).
При инициализации массива указателей базового класса при вызове cout производный класс не...

Перегрузка операторов cout and cin
Нужна помощь) Вот что есть: class Dot { public: float x; float y; }; class Circul


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru