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

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

Войти
Регистрация
Восстановить пароль
 
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
#1

перегрузка операторов и ссылки. - C++

12.01.2011, 17:36. Просмотров 356. Ответов 2
Метки нет (Все метки)

Добрый день
Помогите пожалуйста с перегрузкой оператора <<
Он должен отнимать от находящегося справа int'a определенное число. и прибавлять его к одной из переменных находящегося слева класса Droid.

вот код :
в .h

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
#ifndef __DROID_H__
#define __DROID_H__
#include <string>
#include <iostream>
class Droid{
public:
  Droid(std::string id = "");// : Energy(50), Attack(25), Toughness(15);                                                                     
  ~Droid();
  std::string getId();
  size_t  getEnergy();
  void setId(std::string id);
  void setEnergy(size_t Energy);
  size_t getAttack();
  size_t setToughness();
  std::string getStatus();
  void setStatus(std::string *Stat);
  bool operator==(const Droid other) const;
  bool operator!=(const Droid other) const;
private:
  std::string Id;// le matricule cite plus haut                                                                                              
  size_t Energy; //l'energie restante avant de changer les piles                                                                             
  size_t const Attack;// la puissance d'attaque                                                                                              
  size_t const Toughness;// sa resistance                                                                                                    
  std::string *Status;  // le statut actuel du droid.                                                                                        
};
void operator<<(Droid &droid, int &batteries);
 
#endif
функция перегрузки в .cpp:

C++
1
2
3
4
5
6
7
8
9
10
11
void operator<<(Droid &droid, int &batteries){
  int leak = 100 - droid.getEnergy();
  if (batteries >= leak) {
    batteries -=leak;
    droid.setEnergy(100);
  }
  else {
    droid.setEnergy(droid.getEnergy() + batteries);
    batteries -= leak;
  }
}
строка с вызовом в main :
C++
1
2
3
4
   
Droid   d;
size_t Durasel = 200;
d << Durasel;
Компилятор ругается, пишет :
main_to_be_removed.cpp: In function ‘int main()’:
main_to_be_removed.cpp:13: error: no match for ‘operator<<’ in ‘d << Durasel’
droid.hh:36: note: candidates are: void operator<<(Droid&, int&)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 17:36     перегрузка операторов и ссылки.
Посмотрите здесь:

Перегрузка операторов - C++
Здравствуйте уважаемые форумчане :) У меня имеется задание написать самодельный класс строки. Если с потоковым выводом я разобрался, то с...

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

Перегрузка операторов - C++
вот есть такое задание Для заданного по варианту класса выполнить следующие действия: 1) описать все типы конструкторов и деструктор...

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

Перегрузка операторов - C++
Почему-то выводятся нули в qDebug(): #include &lt;QCoreApplication&gt; #include &lt;QDebug&gt; class Ct { public: int val; ...

Перегрузка операторов - C++
Привет, не подскажите, почему у меня тут не работает правильно += оператор. #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

Перегрузка операторов - C++
Всем привет! Помогите разобраться с перегрузкой операторов. Хочу реализовать класс который будет представлять тип double с...

Перегрузка операторов - C++
помогите разобраться с перегрузкой... в TcomboBox выбирается год... 1 и 2... их нужно сравнить.. выполнив при этом перегрузку...

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
12.01.2011, 18:10     перегрузка операторов и ссылки. #2
Боюсь, что второй оператор должен быть константой.
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
12.01.2011, 18:42  [ТС]     перегрузка операторов и ссылки. #3
Нашел ошибку, надо было size_t передавать, а не int.
Yandex
Объявления
12.01.2011, 18:42     перегрузка операторов и ссылки.
Ответ Создать тему
Опции темы

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