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

Происхождение и сущность ошибок.оператор operator++ - C++

Восстановить пароль Регистрация
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
24.10.2013, 13:12     Происхождение и сущность ошибок.оператор operator++ #1
Пожалуста, обьясните про оператор operator++. честно написать, я вобще почти ничего не понял. Как он действует? Для чего он нужен?

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
36
37
38
39
40
41
42
43
44
45
#include <iostream> // для объекта cout
using namespace std;
 
#include<iomanip>
//Этот файл содержит большую часть манипуляторов C++. Если вы не знаете, что такое манипулятор, не беспокойтесь. Просто подключите это файл смело и не раздумывая  вместе с iostream, хуже не станет.
#include<fstream> 
//Подключается при работе с файлами.
 class Superclass
 {
 public:
     Superclass();
    ~Superclass(){ }
       int Vydavatel()const { return Tselaja; }
       void Prinymatel(int B) { Tselaja = Tselaja+B; }
       Superclass operator++ () { ++Tselaja; return Superclass;}
 
 private:
       int Tselaja;
 };
 
 
 
 Superclass::Superclass():
       Tselaja(0)
 {cout << "Superclass()" <<  endl; }
 
 
 Superclass Superclass::operator++()
 {    Superclass Bum;
      Bum.Prinymatel(50);
      return Bum;   }
 
 
 int main()
 {
Superclass Bject;  
           cout << "Tselaja " <<Bject.Vydavatel() << endl;
Superclass a = ++Bject;
           cout << "Tselaja " <<Bject.Vydavatel() << endl;
           cout << "Tselaja " << a.Vydavatel() << endl;
 
 system("pause  ");
 
 return 0;
 }
Пожалуста, поразясняйте ошибки, помогите окультурить код.

1>d:\проги\uffff\uffff\fffff.cpp(15 ): error C2275: Superclass: недопустимое использование этого типа в качестве выражения
1>d:\проги\uffff\uffff\fffff.cpp(29 ): error C2084: функция "Superclass Superclasserator ++(void)" уже имеет текст реализации
1> d:\проги\uffff\uffff\fffff.cpp(15): см. предыдущее определение "++"
1>d:\проги\uffff\uffff\fffff.cpp(38 ): error C2264: Superclasserator ++: ошибка в определении или объявлении функции; функция не вызвана
1>d:\проги\uffff\uffff\fffff.cpp(38 ): error C2088: ++: недопустимо для class
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 13:12     Происхождение и сущность ошибок.оператор operator++
Посмотрите здесь:

классы и сущность C++
Перегрузить для класса оператор == (много ошибок) C++
operator char() или operator int() C++
C++ Expected init-declarator before "operator".expected `,' or `;' before "operator"
Тернарный оператор и множество ошибок в коде C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,863
Записей в блоге: 2
Завершенные тесты: 1
24.10.2013, 13:20     Происхождение и сущность ошибок.оператор operator++ #2
C++
1
return Superclass
Возвращаете имя класса?

И префиксный инкремент по логике должен возвращать тот же объект, то есть ссылку на *this
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
24.10.2013, 15:03  [ТС]     Происхождение и сущность ошибок.оператор operator++ #3
А может кто-то привести пример с operator++?
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
24.10.2013, 15:12     Происхождение и сущность ошибок.оператор operator++ #4
Чем тебя этот ответ не устраивает?
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
24.10.2013, 15:42  [ТС]     Происхождение и сущность ошибок.оператор operator++ #5
Скомпилировалось!! я что-то вчера не понял. Расматриваю внимательней!!!
Yandex
Объявления
24.10.2013, 15:42     Происхождение и сущность ошибок.оператор operator++
Ответ Создать тему
Опции темы

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