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

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

Восстановить пароль Регистрация
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
05.11.2013, 22:34     Ошибка из книги оператора перегрузки #1
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++ ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
05.11.2013, 22:38     Ошибка из книги оператора перегрузки #2
Нет. Так рассуждать нельзя. Тут явно опечатка.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
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     Ошибка из книги оператора перегрузки
Ответ Создать тему
Опции темы

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