D
Size: a a a
TW
C
СК
Employee
- сотрудник фирмы. От него унаследуются Manager
, Programmer
, ... . Допустим, ты хочешь, чтобы у каждого сотрудника вызвался метод индексация зарплаты. Примерно так это будет выглядеть.class Employee
{
virtual void RaiseSalary()
{
/// some logic
}
};
class Manager : public Employee
{
virtual void RaiseSalary() override
{
/// немного отличная логика, например, повышение с коэффициентом
}
};
class Programmer : public Employee
{
virtual void RaiseSalary() override
{
/// немного отличная логика, например, повышение с коэффициентом
}
};
std::vector<Employee*> staff;
for (Employee* employee : staff)
{
employee->RaiseSalary();
}
Может поможет осознать :)TW
C
m
IZ
NM
Employee
- сотрудник фирмы. От него унаследуются Manager
, Programmer
, ... . Допустим, ты хочешь, чтобы у каждого сотрудника вызвался метод индексация зарплаты. Примерно так это будет выглядеть.class Employee
{
virtual void RaiseSalary()
{
/// some logic
}
};
class Manager : public Employee
{
virtual void RaiseSalary() override
{
/// немного отличная логика, например, повышение с коэффициентом
}
};
class Programmer : public Employee
{
virtual void RaiseSalary() override
{
/// немного отличная логика, например, повышение с коэффициентом
}
};
std::vector<Employee*> staff;
for (Employee* employee : staff)
{
employee->RaiseSalary();
}
Может поможет осознать :)СК
IZ
NM
Child* c= new Child(), который внезапно заменяется на
Base *b = new Child()без объяснения причин. (и вариации кода с той же самой заменой)
IZ
Child* c= new Child(), который внезапно заменяется на
Base *b = new Child()без объяснения причин. (и вариации кода с той же самой заменой)
IZ
Child* c= new Child(), который внезапно заменяется на
Base *b = new Child()без объяснения причин. (и вариации кода с той же самой заменой)
NM
m
IZ
NM
NM
IZ