(a)编写一个抽象类student,仅在public中包含一个纯虚函数printScore; (b)编写一个高中生类senior,公共继承自student;数据成员包括物理和化学课成绩:physics和chemistry,都是double类型;编写构造函数;编写函数printScore打印这两门课的成绩; (c)编写一个大学生college类,公共继承自senior,数据成员包括面向对象课成绩:OOP,double类型;编写构造函数;编写函数printScore打印物理、化学和面向对象的成绩。 (d)主函数中定义一个senior对象,物理和化学课成绩分别为85和90;定义一个college对象,物理、化学,以及面向对象课成绩分别为85、90和95,利用多态调用printScore函数打印两个对象的成绩。
时间: 2024-02-15 18:04:49 浏览: 37
深入解析C++编程中的纯虚函数和抽象类
好的,以下是代码实现:
```cpp
#include <iostream>
using namespace std;
// 声明抽象类student
class student {
public:
virtual void printScore() = 0; // 纯虚函数
};
// 声明高中生类senior
class senior : public student {
protected:
double physics;
double chemistry;
public:
senior(double p, double c) {
physics = p;
chemistry = c;
}
void printScore() {
cout << "物理成绩:" << physics << ",化学成绩:" << chemistry << endl;
}
};
// 声明大学生类college
class college : public senior {
private:
double OOP;
public:
college(double p, double c, double o) : senior(p, c) {
OOP = o;
}
void printScore() {
cout << "物理成绩:" << physics << ",化学成绩:" << chemistry << ",面向对象成绩:" << OOP << endl;
}
};
// 主函数
int main() {
// 定义senior对象
senior s(85, 90);
cout << "高中生成绩:";
s.printScore();
// 定义college对象
college c(85, 90, 95);
cout << "大学生成绩:";
c.printScore();
// 多态调用printScore函数
student* p;
p = &s;
cout << "使用多态调用高中生成绩:";
p->printScore();
p = &c;
cout << "使用多态调用大学生成绩:";
p->printScore();
return 0;
}
```
运行结果:
```
高中生成绩:物理成绩:85,化学成绩:90
大学生成绩:物理成绩:85,化学成绩:90,面向对象成绩:95
使用多态调用高中生成绩:物理成绩:85,化学成绩:90
使用多态调用大学生成绩:物理成绩:85,化学成绩:90,面向对象成绩:95
```
阅读全文