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

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

Войти
Регистрация
Восстановить пароль
 
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
#1

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

30.03.2010, 23:31. Просмотров 578. Ответов 6
Метки нет (Все метки)

копилятор видимо тупит или я туплю или автор книги
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class countt{
public:
    int getvar()const{return itsvar;}
    void setvar(int var){itsvar=var;}
    void inc(){itsvar++;}
    void operator++(){++itsvar;}
    countt(){itsvar(0);}
    ~countt(){}
private:
    int itsvar;
};
 
int main(){
    countt x;
    cout<<"x="<<x<<endl;
    x++;
    cout<<"x="<<x<<endl;
system("pause");
return 0;
 
}
Error 17 error C2064: term does not evaluate to a function taking 1 arguments d:\c++ projects\proba\proba\code.cpp 15
Error 18 error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'countt' (or there is no acceptable conversion) d:\c++ projects\proba\proba\code.cpp 23
Error 20 error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'countt' (or there is no acceptable conversion) d:\c++ projects\proba\proba\code.cpp 25
Добавлено через 2 минуты
пардон,оказалось что я тупил..должен был написать x.getvar()

Добавлено через 38 секунд
а как сделать так чтобы без методов получить значение?объявить член как публичный?

Добавлено через 1 минуту
а почему на эту строку орет?
C++
1
    void operator+-+(){++itsvar;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2010, 23:31     Ошибка с перегрузкой операторов
Посмотрите здесь:

Проблема с перегрузкой операторов '-' >> << и с конструктором без параметров C++
Проблема с абстрактными классами и перегрузкой операторов C++
C++ Создание класса с перегрузкой операторов конструктор и деструктор
C++ Проблемы с перегрузкой операторов файлового вводы/вывода
C++ Создание шаблона с перегрузкой стандартных операторов
C++ Добавление и удаление объектов с перегрузкой операторов '+' и '-'
Создать файл для определения класса рациональных чисел с перегрузкой операторов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
666 / 528 / 44
Регистрация: 05.03.2010
Сообщений: 1,271
31.03.2010, 01:25     Ошибка с перегрузкой операторов #2
а что такое +-+?)
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
31.03.2010, 01:35     Ошибка с перегрузкой операторов #3
МедведЪ, добавь в public
C++
1
2
3
4
friend ostream& operator << ( ostream& ost, const countt& c ){
    ost << c.itsvar;
    return ost;
}
и будет тебе счастье.
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
31.03.2010, 10:50  [ТС]     Ошибка с перегрузкой операторов #4
Цитата Сообщение от Vorona Посмотреть сообщение
а что такое +-+?)
оператор, нельзя чтобы я сам свой создал?

Добавлено через 20 секунд
Цитата Сообщение от easybudda Посмотреть сообщение
и будет тебе счастье
а для чего это?много незнакомого
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
31.03.2010, 10:54     Ошибка с перегрузкой операторов #5
Цитата Сообщение от МедведЪ Посмотреть сообщение
оператор, нельзя чтобы я сам свой создал?
Нет, нельзя

Добавлено через 1 минуту
Только вот эти:
Код
+    -    *    /    =    <    >    +=   -=   *=   /=   <<   >>
<<=  >>=  ==   !=   <=   >=   ++   --   %    &    ^    !    |
~    &=   ^=   |=   &&   ||   %=   []   ()   ,    ->*  ->   new 
delete    new[]     delete[]
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
31.03.2010, 11:55  [ТС]     Ошибка с перегрузкой операторов #6
easybudda, так что код делает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2010, 12:29     Ошибка с перегрузкой операторов
Еще ссылки по теме:

C++ Нахождение квадрата числа с перегрузкой операторов и функций
Класс "Длинные числа" с перегрузкой операторов C++
C++ Разница между перегрузкой операторов внешней или внутренней функцией
C++ Объясните работу кода с перегрузкой операторов
C++ Написать класс "Дата" с перегрузкой операторов

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

Или воспользуйтесь поиском по форуму:
kazak
3031 / 2352 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
31.03.2010, 12:29     Ошибка с перегрузкой операторов #7
Цитата Сообщение от МедведЪ Посмотреть сообщение
easybudda, так что код делает
Перегружает оператор "поместить в поток" для твоего класса, потому как без подсказки компилятор не узнает как это делать с твоим классом.
Yandex
Объявления
31.03.2010, 12:29     Ошибка с перегрузкой операторов
Ответ Создать тему
Опции темы

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