52 lines
1.0 KiB
C++
52 lines
1.0 KiB
C++
|
// 构造函数
|
||
|
#include <iostream>
|
||
|
#include <cstring>
|
||
|
#include <cstdlib>
|
||
|
|
||
|
using namespace std;
|
||
|
|
||
|
class Person
|
||
|
{
|
||
|
private:
|
||
|
string name;
|
||
|
int age;
|
||
|
|
||
|
public:
|
||
|
Person(const string &name, int age) : name(name), age(age) {}
|
||
|
|
||
|
public:
|
||
|
void hi()
|
||
|
{
|
||
|
cout << this->name << ", " << this->age << endl;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
class Worker : public Person
|
||
|
{
|
||
|
private:
|
||
|
int salary; // 工资
|
||
|
int year; // 工作年限
|
||
|
|
||
|
public:
|
||
|
// 子类的构造函数定义时,可以调用父类的构造函数进行父类成员的初始化
|
||
|
// 使用初始化列表实现(调用父类的构造函数,传入对应参数)
|
||
|
Worker(const string &name, int age, int salary, int year) : Person(name, age), salary(salary), year(year)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public:
|
||
|
void hi() // 重写了父类的函数,覆盖了父类的 hi()
|
||
|
{
|
||
|
// 先调用父类的 hi()
|
||
|
Person::hi();
|
||
|
cout << salary << ", " << year << endl;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
Worker w1 = Worker("liming", 18, 2100, 2);
|
||
|
w1.hi();
|
||
|
return 0;
|
||
|
}
|