题目描述 使用c++设计一个Person类,其属性包括姓名name和身份证号id,其中name为string类型,id也为string型,编写成员函数:构造函数Person、Display函数(显示数据成员信息)和析构函数;由Person类派生出大学生类CollegeStu,其属性有专业major(string类型),C++程序设计课程成绩score(double型),编写构造函数(实现数据初始化)、输出函数Display(包括name,id,major,score)。 样例输入 Zhangsan 210302198909120938 Software 99.5 样例输出 Name:Zhangsan ID:210302198909120938 Major:Software C++ Score:99.5
时间: 2024-03-19 19:42:57 浏览: 116
以下是使用c++设计的Person类和CollegeStu类的代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Person {
public:
Person(string n, string i) : name(n), id(i) {
cout << "构造了一个Person对象" << endl;
}
~Person() {
cout << "析构了一个Person对象" << endl;
}
void Display() {
cout << "Name:" << name << " ID:" << id << endl;
}
protected:
string name;
string id;
};
class CollegeStu : public Person {
public:
CollegeStu(string n, string i, string m, double s)
: Person(n, i), major(m), score(s) {
cout << "构造了一个CollegeStu对象" << endl;
}
~CollegeStu() {
cout << "析构了一个CollegeStu对象" << endl;
}
void Display() {
Person::Display();
cout << "Major:" << major << " C++ Score:" << score << endl;
}
private:
string major;
double score;
};
int main() {
string name, id, major;
double score;
cin >> name >> id >> major >> score;
CollegeStu stu(name, id, major, score);
stu.Display();
return 0;
}
```
运行程序并输入样例中的数据,输出结果如下:
```
构造了一个Person对象
构造了一个CollegeStu对象
Name:Zhangsan ID:210302198909120938
Major:Software C++ Score:99.5
析构了一个CollegeStu对象
析构了一个Person对象
```
其中,Person类和CollegeStu类分别用于表示人员和大学生,其构造函数和析构函数用于对象的创建和销毁。Person类中包含了姓名和身份证号属性,以及构造函数、析构函数和Display函数;CollegeStu类从Person类派生而来,增加了专业和C++成绩属性,并且也包含了构造函数、析构函数和Display函数,用于输出所有属性信息。在主函数中,首先从标准输入读取数据,然后创建一个CollegeStu对象,最后调用Display函数输出该对象的所有属性信息。
阅读全文