当代的面向对象语言(object-oriented, OO )为提高代码的设计,结构和可重用性,提供了封装(encapsulation),继承(inheritance)和多态(polymorphism). 今天,我们来看看继承在C++中的使用。
雇员的例子
以下是几种不同类型的雇员
- 普通员工
- 项目经理
- 总监
雇员类
.h
class employee
{
public:
employee(string name, float payrate);
string get_name() const;
float get_payrate() const;
float pay(float hours_worked) const;
protected:
string name;
float payrate;
};
.cc
employee::employee(string name, float payrate)
{
this->this->name = name;
this->this->payrate = payrate;
}
string employee::get_name() const
{
return name;
}
float employee::get_payrate() const
{
return payrate;
}
float employee::pay(float hours_worked) const
{
return hours_worked * payrate;
}
Employee empl("John Burke", 25.0);
输出为:
// Print out name and pay (based on 40 hours work).
cout << "Name: " << empl.get_name() << endl;
cout << "Pay: " << empl.pay(40.0) << endl;
Multiple Types of the Same Thing
在现实世界中,我们并不是把所有事物都看作是独一无二的,有时,我们把一些事物与另一些事物看作十分相似,除了一些小差异。