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

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

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

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

05.11.2013, 22:34. Просмотров 237. Ответов 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++ Утечка при перегрузки оператора "+"
Вопрос по поводу перегрузки оператора + C++
C++ Friend-функции перегрузки оператора
Ошибка в алгоритме перегрузки оператора присваивания C++
По поводу потока и перегрузки оператора вставки в классе C++
Аналог перегрузки оператора индексирования (operator []) C++
Необходимость перегрузки оператора присваивания "=" C++
Выполнить объединение двух строк с помощью перегрузки оператора (*) C++
Особенонсти перегрузки оператора запятая C++
Ошибка перегрузки оператора C++
Open Watcom нет перегрузки для оператора ввода для типа std::string C++
C++ Целесообразность перегрузки оператора

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4869 / 3008 / 370
Регистрация: 10.11.2010
Сообщений: 11,059
Записей в блоге: 10
Завершенные тесты: 1
05.11.2013, 22:38     Ошибка из книги оператора перегрузки #2
Нет. Так рассуждать нельзя. Тут явно опечатка.
ValeryS
Модератор
6447 / 4913 / 451
Регистрация: 14.02.2011
Сообщений: 16,286
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     Ошибка из книги оператора перегрузки
Ответ Создать тему
Опции темы

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