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

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

Войти
Регистрация
Восстановить пароль
 
AnonymC
1176 / 459 / 30
Регистрация: 23.06.2009
Сообщений: 6,363
Завершенные тесты: 1
#1

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

30.03.2010, 23:31. Просмотров 611. Ответов 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;}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2010, 23:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка с перегрузкой операторов (C++):

Объясните работу кода с перегрузкой операторов - C++
Здравствуйте Код: #include &lt;iostream&gt; using namespace std; class A { public:

Добавление и удаление объектов с перегрузкой операторов '+' и '-' - C++
У нас есть массив указателей на объекты, и нужно осуществить добавление и удаление объектов с помощью перегрузки оперторов '+' и '-'. ...

Проблема с абстрактными классами и перегрузкой операторов - C++
добрый день. в общем ситуация такая: есть несколько классов, наследуемых от абстрактного класса. Нужно реализовать чтобы можно было...

Создание шаблона с перегрузкой стандартных операторов - C++
Здравствуйте уважаемые! Уже несколько часов подряд бьюсь над задачей вроде бы очень простой, но видимо что-то упускаю. Задача...

Проблемы с перегрузкой операторов файлового вводы/вывода - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace std; class Array{ int...

Проблема с перегрузкой операторов '-' >> << и с конструктором без параметров - C++
Помогите пожалуйста, проблема с перегрузкой операторов '-' &gt;&gt; &lt;&lt;, возможно еще с конструктором без параметров наверно проблема #pragma...

6
Vorona
Peace 2 all shining faces
671 / 533 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
31.03.2010, 01:25 #2
а что такое +-+?)
0
easybudda
Модератор
Эксперт CЭксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
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;
}
и будет тебе счастье.
0
AnonymC
1176 / 459 / 30
Регистрация: 23.06.2009
Сообщений: 6,363
Завершенные тесты: 1
31.03.2010, 10:50  [ТС] #4
Цитата Сообщение от Vorona Посмотреть сообщение
а что такое +-+?)
оператор, нельзя чтобы я сам свой создал?

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

Добавлено через 1 минуту
Только вот эти:
Код
+    -    *    /    =    <    >    +=   -=   *=   /=   <<   >>
<<=  >>=  ==   !=   <=   >=   ++   --   %    &    ^    !    |
~    &=   ^=   |=   &&   ||   %=   []   ()   ,    ->*  ->   new 
delete    new[]     delete[]
1
AnonymC
1176 / 459 / 30
Регистрация: 23.06.2009
Сообщений: 6,363
Завершенные тесты: 1
31.03.2010, 11:55  [ТС] #6
easybudda, так что код делает
0
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
31.03.2010, 12:29 #7
Цитата Сообщение от МедведЪ Посмотреть сообщение
easybudda, так что код делает
Перегружает оператор "поместить в поток" для твоего класса, потому как без подсказки компилятор не узнает как это делать с твоим классом.
1
31.03.2010, 12:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2010, 12:29
Привет! Вот еще темы с ответами:

Нахождение квадрата числа с перегрузкой операторов и функций - C++
Нахождения квадрата числа. Программа на перегрузки операций , функций.

Создание класса с перегрузкой операторов конструктор и деструктор - C++
Создать класс времени (Time) содержащий закрытую переменную-член хранящую целое значение времени интервала в секундах. Интерфейс класса...

Разница между перегрузкой операторов внешней или внутренней функцией - C++
Перегружаю operator* (умножаю экземпляры своего класса между собой). Как лучше перегрузить: MyClass operator*(MyClass a, MyClass b){}или ...

Создать файл для определения класса рациональных чисел с перегрузкой операторов - C++
Добрый день. Нужно создать файл для определения класса рациональных чисел с перегрузкой операторов. Ввиду своей криворукости имею множество...


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

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

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