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

Перегрузка ввода/вывода в/из потока - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ "Очереди" - очистка памяти http://www.cyberforum.ru/cpp-beginners/thread97101.html
Привет всем, у меня возникла такая проблема, есть функция которая делает выборку из очереди: //------------Выборка из очереди Order *get(Order* beg){ if(!beg){ cout << "\nОчередь пуста";...
C++ Присвоить целой переменной К первую цифру с дробной части положительного действительного числа Х Помогите пожалуйста решить задачку на С++ : Присвоить целой переменной К первую цифру с дробной части положительного действительного числа Х Спасибо за ответы! http://www.cyberforum.ru/cpp-beginners/thread97091.html
C++ и сеть C++
В каких книгах или на каких сайтах, в общем какие информационные источники помогут разобраться в работе C++ с сетью и сетевыми протоколами
Разветвленные алгоритмы и программы C++
Здраствуйте. Можете помочь с этой задачей, если Вам не тяжело: Касса Аэрофлота начинает работу с Т1 часов. С Т2 часов касса закрыта на обеденный перерыв, который длится Н часов. После перерыва...
C++ Как вывести код символа? http://www.cyberforum.ru/cpp-beginners/thread97052.html
Дан символ C. Как вывести его код(то есть номер в кодовой таблице)?
C++ Отделение интерфейса от реализации Доброго времени суток! Имеется вопрос по теме, обозначенной в заголовке. Предположим, я разрабатываю класс. Я создаю два файла: заголовочный файл (ClassName.h) и реализацию этого класса... подробнее

Показать сообщение отдельно
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
26.02.2010, 20:05
А у меня с перегрузкой операторов ввода/вывода такая проблема

простейший класс

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class myClass
{
public:
    myClass() { itsValue = 0; };
    ~myClass();
 
    int GetValue(){ return itsValue; };
 
    friend ostream& operator<<( ostream&os, const myClass&rhs )
    { return os<<rhs.GetValue(); }
    friend istream& operator>>( istream& is, myClass& rfs )
    { return is >> rfs.GetValue() ; };  
 
private:
    int itsValue;
};
при попытке использовать cout<< либо cin>>в основной программе использующей класс ? компилятор выдает
C++
1
2
3
4
5
6
7
8
9
Compiling...
main.cpp
myClass.cpp
I:\!!WRK\Programming\c++\MyProjects_\Tested\myClass.cpp(26) : error C2662: 'GetValue' : cannot convert 'this' pointer from 'const class myClass' to 'class myClass &'
        Conversion loses qualifiers
I:\!!WRK\Programming\c++\MyProjects_\Tested\myClass.cpp(33) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
Error executing cl.exe.
 
Tested.exe - 2 error(s), 0 warning(s)
причем если я переношу itsValue в public, и вместо
C++
1
2
3
4
// ...
{ return os<<rhs.GetValue(); }
// ...
{ return is>>rhs.GetValue(); }
пишу
C++
1
2
3
4
// ...
{ return os<<rhs.itsValue; }
// ...
{ return is>>rhs.itsValue; }
все работает окей. Возникает вопрос, то ли лыжы не едут, то ли я еду по асфальту?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru