ООП на С/C++
Оператор *this
this является указателем внутри объекта на сам объект.
Он нужен, чтобы, например, зарегистировать один обьект у другого объекта.
Вспомогательная цель: различать поля и локальные переменные.
Наследование
public наследование - в классе-наследнике доступны все свойства класса-предка кроме private, и они также доступны извне.
private - класс-наследник наследует свойства и методы "только для себя".
protected - класс-наследник наследует свойства и передают их своим наследникам.
Полиморфизм
Создадим три класса: A, B и C - которые будут выводит экземпляр какого класса вызван.
Ключевое слово virtual объявляет метод виртуальным.
#include <iostream>
using namespace std;
class A {
public:
// virtual // Раскомментируйте эту строку
void show(){
cout << "show A" << endl;
};
};
class B : public A {
void show(){
cout << "show B" << endl;
};
};
class C : public B {
void show(){
cout << "show C" << endl;
};
};
class D : public B, public C {
void show(){
cout << "show D" << endl;
};
};
int main(){
A* a[3];
// Заводим всех типов
a[0] = new A();
a[1] = new B();
a[2] = new C();
for(int i=0; i<3; i++)
a[i]->show();
// Отчистка памяти
}