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

ошибка при прегрузки оператора - C++

Восстановить пароль Регистрация
 
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.01.2012, 13:10     ошибка при прегрузки оператора #1
вот код:
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
30
31
32
33
34
35
#include <iostream>
using namespace std;
class Count
{
private:
    int cn;
public:
    Count() : cn(0)
    {}
    Count (int c) : cn(c)
    {}
    int getcn ()
    {
       return cn; 
    }
    void operator ++()
    {
        ++cn;
    }
    
};
int main()
{
    Count c1;
    Count c2;
    ++c1;
    cout << "C1 = " << c1 << endl;
    c2++;
    ++c2;
    ++c2;
    cout << "C2 = " << c2 << endl;
    
    system("pause");
    return 0; 
}
как в книге вот ошибки компилятора:

error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class Count' (or there is no acceptable conversion)

warning C4620: no postfix form of 'operator ++' found for type 'Count', using prefix form

see declaration of 'Count'

error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class Count' (or there is no acceptable conversion)
Error executing cl.exe.

2 error(s), 1 warning(s)

что надо испарить в коде?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
22.01.2012, 13:25     ошибка при прегрузки оператора #2
Нужно дописать недостающие перегрузки, написано же.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
22.01.2012, 13:29     ошибка при прегрузки оператора #3
C++
1
2
3
4
5
6
cout << "C1 = " << c1.getcn() << endl;        
...
// для постфиксной версии инкремента перегрузи соответсвующую функцию(operator++(int))
c2++; 
...
cout << "C2 = " << c2.getcn() << endl;
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.01.2012, 15:01  [ТС]     ошибка при прегрузки оператора #4
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
3
4
5
6
cout << "C1 = " << c1.getcn() << endl;        
...
// для постфиксной версии инкремента перегрузи соответсвующую функцию(operator++(int))
c2++; 
...
cout << "C2 = " << c2.getcn() << endl;
а это метод:
C++
1
2
3
4
 int getcn ()
        {
           return cn; 
        }
всегда нужен для вывода перменых?
Yandex
Объявления
22.01.2012, 15:01     ошибка при прегрузки оператора
Ответ Создать тему
Опции темы

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