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

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

Войти
Регистрация
Восстановить пароль
 
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,910
Записей в блоге: 1
#1

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

22.01.2012, 13:10. Просмотров 451. Ответов 3
Метки нет (Все метки)

вот код:
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)

что надо испарить в коде?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2012, 13:10     ошибка при прегрузки оператора
Посмотрите здесь:

C++ Ошибка при использовании оператора delete в Visual Studio 2010
Прегрузки C++
Выдается ошибка в std при использовании оператора for C++
Ошибка при вызове в switch перегруженного оператора C++
C++ Ошибка в перегрузке оператора - при работе с массивами
C++ Ошибка при перегрузке оператора, не знаю как исправить
C++ Синтаксическая ошибка при определении метода перегруженного оператора,за классом
Ошибка при перегрузке оператора вывода в файл C++
C++ Ошибка при использовании перегруженного оператора вывода в поток: no match for 'operator<<'
Ошибка при перегрузке оператора cin >> C++
C++ Ошибка при использовании оператора for в задаче с символьными строками
Ошибка при перегрузке оператора + C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,111
22.01.2012, 13:25     ошибка при прегрузки оператора #2
Нужно дописать недостающие перегрузки, написано же.
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
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,910
Записей в блоге: 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     ошибка при прегрузки оператора
Ответ Создать тему
Опции темы

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