定义基类 Person 类,包含保护数据成员string szName 和公有成员虚函数 print(),输出为:“Person 姓名”。从Person类派生Student类,添加表示学号的保护数据成员int iNumber,并实现print(),输出为:“Student
时间: 2024-03-27 14:36:43 浏览: 40
设计一个Person类,有Person类派生一个Student类和一个Teacher类
学号 姓名”。以下是代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Person {
protected:
string szName;
public:
virtual void print() {
cout << "Person " << szName << endl;
}
};
class Student : public Person {
protected:
int iNumber;
public:
virtual void print() {
cout << "Student " << iNumber << " " << szName << endl;
}
};
int main() {
Person *p = new Student();
p->print(); // 输出 "Student 0 "
delete p;
return 0;
}
```
在上面的代码中,我们定义了一个基类 `Person`,其中包含保护数据成员 `szName` 和公有成员虚函数 `print()`。然后我们从 `Person` 派生出 `Student` 类,并添加表示学号的保护数据成员 `iNumber`。在 `Student` 类中,我们实现了虚函数 `print()`,并在其中输出了学号和姓名。在 `main()` 函数中,我们使用基类指针指向派生类对象,并调用 `print()` 函数,输出结果为 "Student 0 ",这是因为我们没有对 `iNumber` 和 `szName` 进行初始化。
阅读全文