1)定义抽象类object:只提供一个纯虚函数print(); 2)定义person类,公有继承object类,定义属性name(姓名)、age(年龄)和sex(性别),并定义print()成员函数显示相关信息; 3)定义employee类,公有继承person类,定义属性ID(员工ID),定义print()成员函数显示相关信息; 4)在main()函数中,定义object指针变量调用person 对象及employee对象的print成员函数。 (根据实际需求定义各个类的构造函数)
时间: 2024-01-21 17:04:55 浏览: 111
好的,以下是代码实现:
```c++
#include <iostream>
using namespace std;
// 定义抽象类object
class object {
public:
virtual void print() = 0; // 纯虚函数
};
// 定义person类,公有继承object类
class person : public object {
public:
person(string n, int a, string s) : name(n), age(a), sex(s) {} // 构造函数
void print() { // 重写print函数
cout << "姓名:" << name << ",年龄:" << age << ",性别:" << sex << endl;
}
private:
string name;
int age;
string sex;
};
// 定义employee类,公有继承person类
class employee : public person {
public:
employee(string n, int a, string s, int i) : person(n, a, s), ID(i) {} // 构造函数
void print() { // 重写print函数
person::print(); // 调用person的print函数
cout << "员工ID:" << ID << endl;
}
private:
int ID;
};
int main() {
object* obj1 = new person("张三", 25, "男"); // 创建person对象
obj1->print(); // 调用print函数
object* obj2 = new employee("李四", 30, "女", 1001); // 创建employee对象
obj2->print(); // 调用print函数
delete obj1;
delete obj2;
return 0;
}
```
在上述代码中,先定义了一个抽象类`object`,其中包含一个纯虚函数`print()`。然后定义了`person`类,它公有继承自`object`类,并包含姓名、年龄和性别三个属性,以及重写的`print()`函数。接着定义了`employee`类,它公有继承自`person`类,并增加了一个员工ID属性,同样重写了`print()`函数。在`main()`函数中,通过`new`关键字分别创建了`person`和`employee`对象,并通过`object`指针调用它们的`print()`函数。最后别忘了释放内存。
阅读全文