Динамична памет
* Заделяне на динамична памет:
new Employee
new int
* Тип указател - съхранява адрес в heap-а
-- дефиниране:
Employee * boss;
int * pn;
-- запазване на памет:
new име на тип
new име на тип(...)
-- задаване на начална стойност:
Employee * boss = new Employee("John",
3200);
int * pn = new int(10);
-- стойност на указател:
Employee harry("Harry", 1500);
*boss = harry;
cout << (*boss).get_salary();
cout << boss->get_salary();
*pn = 12;
cout << *pn;
-- освобождаване на памет (унищожаване на обекта):
delete boss;
delete pn;
Производни класове
class Manager : public Employee {
public:
Manager(string n, double
sal, string dept);
string get_department() const;
void print() const;
private:
string department;
};
Manager man;
man.set_salary(1200);
cout << man.get_department();
Employee - базов клас,
Manager - производен клас
- членовете на базовият клас са членове и на производния клас
- функциите на производният клас нямат достъп до частните членова
на базовия клас
Конструктор на производен клас
и викане на член-функция на базов клас
Manager::Manager(string n, double
sal, string dept)
: Employee(n,
sal)
{ department = dept; }
void Manager::print()
{ Employee::print();
cout << department;
}
Полиморфизъм
Виртуални функции
Връзки между класове