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

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

Войти
Регистрация
Восстановить пароль
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
#1

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

05.11.2013, 22:34. Просмотров 245. Ответов 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
36
37
38
39
40
41
42
43
44
45
46
47
48
// Листинг 10.10.
  // Возвращение безымянного временного объекта
#include <string> 
#include <iostream> // для объекта cout
using namespace std;
 
#include<iomanip>
//Этот файл содержит большую часть манипуляторов C++. Если вы не знаете, что такое манипулятор, не беспокойтесь. Просто подключите это файл смело и не раздумывая  вместе с iostream, хуже не станет.
#include<fstream> 
//Подключается при работе с файлами.
  class Counter
  {
 public:
 Counter();
 Counter(int val);
 ~Counter(){ }
 int GetItsVal()const { return itsVal; }
 void SetItsVal(int x) { itsVal = x; }
 void Increment() { ++itsVal; }
 Counter operator++ ();
 private:
 int itsVal;
  };
  Counter::Counter():
  itsVal(0)
  { }
  Counter::Counter(int val):
 itsVal(val)
  { }
 
  CounterCounter::operator++()
  {
 ++itsVal;
 return Counter (itsVal);
  }
  int main()
  {
 Counter i;
 cout << "The value of i is" << i.GetItsVal() << endl;
 i.Increment();
 cout << "The value of i is" << i.GetItsVal() << endl;
   ++i;
 cout << "The value of i is" << i.GetItsVal() << endl;
 Counter a = ++i;
 cout << "The value of a: " << a.GetItsVal();
 cout << " and i: " << i.GetItsVal() << endl;
 return 0;
  }
1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(31): error C2653: CounterCounter: не является именем класса или пространства имен
1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(32): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(33): error C2065: itsVal: необъявленный идентификатор
1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(34): error C2065: itsVal: необъявленный идентификатор
1>d:\проги\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie bezyimyannyih vremennyih ob'ektov\vozvraschenie.cpp(34): warning C4508: ++: функция должна возвращать значение; предполагается возвращаемый тип "void"
1> Выход из команды с кодом "2".



Можно ли расуждать так- оператор operator++ это просто такая функция, только лиш вызывается она, если мы в майне пишем ++обьект, ну а вместо названия функции пишем собствено operator++ ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 22:34     Ошибка из книги оператора перегрузки
Посмотрите здесь:

Ошибка перегрузки оператора - C++
Здравствуйте уважаемые программисты, при созданиии проэкта возникает ошибка In function 'int main()': 154 10 no 'operator++(int)'...

Ошибка в алгоритме перегрузки оператора присваивания - C++
Добрый вечер. Пишу методы для класса по своему заданию. Столкнулся с проблемой перегрузки оператора присваивания для метода поиска. Привожу...

Целесообразность перегрузки оператора - C++
Изначально имелся такой вот метод (пусть будет методом класса &quot;A&quot;): //класс &quot;A&quot;, константная версия метода const Order &amp;operator...

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

Friend-функции перегрузки оператора - C++
Всем доброго времени суток =) У меня есть следующий код заголовочного файла: enum month {jan = 1, feb, mar, apr, may, jun, jul, aug, sep,...

Вопрос по поводу перегрузки оператора + - C++
Всем привет.Подскажите как можно перегрузить оператор + в моем классе? И что лучше вернуть из перегруженной операции +=? Объект или...

Аналог перегрузки оператора индексирования (operator []) - C++
Как по-другому(то есть в виде обычной функции или как то ещё) можно записать перегрузку оператора индексирования? Например в моём случае:...

По поводу потока и перегрузки оператора вставки в классе - C++
#include &lt;iostream&gt; using namespace std; class three_d { public: int x, y, z; three_d(int a, int b, int c) { x=a; y=b; z=c; } ...

Выполнить объединение двух строк с помощью перегрузки оператора (*) - C++
#define _CRT_SECURE_NO_WARNINGS #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; class String { char *str; int...

Написать функцию перегрузки оператора инкремента для увеличения переменной типа enum class - C++
Доброго времени суток. Есть перечисление. enum class Month { jan = 1, feb, mar, apr, may, jun, jul, aug, sep, nov, dec }; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
05.11.2013, 22:38     Ошибка из книги оператора перегрузки #2
Нет. Так рассуждать нельзя. Тут явно опечатка.
ValeryS
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,653
05.11.2013, 22:45     Ошибка из книги оператора перегрузки #3
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
CounterCounter: не является именем класса или пространства имен
действительно
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
CounterCounter::operator++()
откуда имя взялось?
может всетаки
C++
1
Counter Counter::operator++()
оператор ++ класса Counter возвращает Counter
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
05.11.2013, 22:49  [ТС]     Ошибка из книги оператора перегрузки #4
Спасибо!! Вот оно что!! А я было так прописал
C++
1
Counter::Counter::operator++()
Yandex
Объявления
05.11.2013, 22:49     Ошибка из книги оператора перегрузки
Ответ Создать тему
Опции темы

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