Перегрузка функций и операторов в C++

Перегрузка функции.
Перегрузка функции — это концепция программирования, согласно которой функцию можно повторно использовать с разными аргументами и типом возвращаемого значения.
Например. void print(char* szMessage) и void print(int number)

Перегрузка операторов.
Перегрузка операторов — это концепция программирования, в соответствии с которой существующие операторы могут быть перегружены таким образом, чтобы при использовании этих операторов с объектами класса операторы имели значение, соответствующее новым типам.

Например:

class NumberClass {
public:
//Перегрузка оператора присваивания
const NumberClass& operator=(const NumberClass &);
private:
int a;
int b;
int c;
};

const NumberClass& NumberClass::operator=(const NumberClass& source)
{
a = source.a;
b = source.b;
c = source.c;
вернуть *это;
}

main()
{
NumberClass A(1,1,1), B(2,2,2);
A=B; // Вызов перегруженной функции присваивания
return 0;
}

В приведенном выше примере оператор присваивания перегружается новой реализацией в классе «NumberClass».

Виртуальная функция.
Виртуальная функция — это функция-член, объявленная в базовом классе, которая может быть переопределена производным классом. Когда вы обращаетесь к объекту производного класса с помощью указателя или ссылки на базовый класс, вы можете вызвать виртуальную функцию для этого объекта и выполнить версию метода производного класса.

Пример :

class Base {
public:
virtual void print() { cout ‹‹ «\nЭто из базового класса» ‹‹ endl;
};

class Derive : public Base {
public:
void print() { cout ‹‹ «\nЭто из производного класса» ‹‹ endl;
};

main() {
Base* GenericClass = 0;
GenericClass = new Derive;
GenericClass-›print();
delete GenericClass;
}

Приведенные выше фрагменты кода будут вызывать версию производного класса print().

Чистая виртуальная функция
— виртуальная функция, не имеющая реализации.
— записывается как виртуальный прототип = 0;
— все производные классы должны предоставлять собственное определение.< br /> — абстрактный класс — это класс, содержащий чистую виртуальную функцию.

Вывод:

Перегрузка функций и операторов — важные концепции программирования в объектно-ориентированных языках программирования, которые обеспечивают большую гибкость для программистов при правильном использовании.