Другие языки программирования и технологии

Перегрузка операций методами класса в С++. Расскажите, пожалуйста, кратко и доходчиво на каком-нибудь примере.

Возможно, вы имели ввиду метод operator, тогда пример класса date, который позволяет создавать дату, сравнивать две даты различными способами, присваивать новую дату объекту, выполнять сложение и вычитание дней к текущей дате, увеличивать и уменьшать дату на один день, выводить её на печать, приводить тип даты к целому числу со знаком.

ФС
Фируз Собиров
89 799
Лучший ответ
#include <iostream>
using namespace std;
// 1 функция
double powq(double a,int k)
{
cout << "Это powq(double a,int k)!" << endl;
float b=1;
while(k)
{
if(k%2) b*=a; k/=2; a*=a;
}
return b;
}
// 2 функция
double powq(double a)
{
cout << "Это powq(double a)!" << endl;
return a*a;
}
// 3 функция
double powq(float a)
{
cout << "Это powq(float a)!" << endl;
return a*a;
}

class pereg
{
public:
pereg(float a) { cout << "Конструктор pereg(float a)!" << endl; }
pereg(double a) { cout << "Конструктор pereg(double a)!" << endl; }
pereg(double a,float b) { cout << "Конструктор pereg(double a,int b)!" << endl; }
};

void main()
{
double x=1.2;
float z=1.1;
pereg a(x);
pereg b(z);
pereg c(z,x);
cout << powq(x,3) << endl; // вызов 1-й функции
cout << powq(x) << endl; // вызов 2-й функции
cout << powq(z) << endl; // вызов 3-й функции
}

//Перегружаемые функции различаются по типу и/или по количеству аргументов - справедливо и для методов класса