global operator функция

294
09 января 2017, 21:46

Как тут глобал оператор работает с данными класса? Какие свойство у него, и чем отличается от friend.

class Demo {
private:
  double d;
public:
  Demo() { d = 0.0; }
  Demo(double x) { d = x; }
  ~Demo() { cout <<"In Destructor" << endl; }
  double getd() { d = 5; return d; }
};
bool operator<(Demo a, Demo b)
{
  return a.getd() < b.getd();
}
bool operator==(Demo a, Demo b)
{
  return a.getd() == b.getd();
}
int main()
{
  Demo o1(2.0),o2(3.0);
  if(o1<o2)
    cout << "True";
  cout << endl;
  return 0;
}
Answer 1

Как тут глобал оператор работает с данными класса?

Так, как вы написали:

return a.getd() == b.getd();

(BTW, для double данный способ сравнения некорректен).

чем отличается от friend.

Отсутствием доступа к private и protected.

READ ALSO
Антикейлогер и DLL

Антикейлогер и DLL

Написал программу, которая должна выполнять функцию антикейлогера(отлавливать хуки в системе через функцию в DLL)Но почему-то при подключении...

316
Сортировка по полю с нулями, идущими последними

Сортировка по полю с нулями, идущими последними

Мне нужно произвести сортировку товаров по возрастанию ценыДелаю так:

271
Как можно узнать версию MySQL

Как можно узнать версию MySQL

Как можно узнать версию MySQL под Windows?

282
Как лучше всего сделать общую операцию для всех методов контроллера в Spring MVC?

Как лучше всего сделать общую операцию для всех методов контроллера в Spring MVC?

Использую Spring BootЗадача довольно простая - в каждом методе у меня однотипные операции, проверка, вошел ли пользователь, если не вошел кидаем...

297