·建立人员类,具有编号和年龄2个成员·继承人员类,生成驾驶员类和工程师类。 ·驾驶员类包含证书编号成员 ·工程师类包含技术等级成员 显示输入人员的编号,年龄职业和2个职业共有多少数量,人员共有多少。 使用构造函数和静态成员变量完成。c++,使用struct
时间: 2024-09-25 07:03:52 浏览: 46
在C++中,你可以创建一个基础结构`Person`来表示人员,然后通过继承创建两个派生类`Driver`和`Engineer`。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
// 定义Person基类
struct Person {
private:
int id;
int age;
public:
// 构造函数
Person(int id, int age) : id(id), age(age) {}
// 显示信息
void displayInfo() {
std::cout << "编号:" << id << ", 年龄:" << age << std::endl;
}
};
// 继承Person并添加特定字段的Driver类
struct Driver : public Person {
private:
std::string certificateNumber;
public:
Driver(int id, int age, const std::string& certificateNumber)
: Person(id, age), certificateNumber(certificateNumber) {}
void displayInfo() override {
Person::displayInfo();
std::cout << "证书编号:" << certificateNumber << std::endl;
}
};
// 继承Person并添加特定字段的Engineer类
struct Engineer : public Person {
private:
int technicalLevel;
public:
Engineer(int id, int age, int technicalLevel)
: Person(id, age), technicalLevel(technicalLevel) {}
void displayInfo() override {
Person::displayInfo();
std::cout << "技术等级:" << technicalLevel << std::endl;
}
};
int main() {
// 创建并显示人员信息
Person person1(1, 30);
person1.displayInfo();
Driver driver2(2, 35, "CN001");
driver2.displayInfo();
Engineer engineer3(3, 40, 5);
engineer3.displayInfo();
// 计算职业总数
static int totalOccupations = 3; // 假设只有这三个实例存在
std::cout << "共有" << totalOccupations << "种职业。\n";
return 0;
}
```
在这个例子中,我们展示了如何创建基础类`Person`,以及它两个派生类`Driver`和`Engineer`。每个类都有自己的特定信息,并覆盖了`displayInfo()`方法以包括额外的信息。
阅读全文