题目内容:
设计学生类,数据成员包括学号、姓名、年龄、成绩,为保护成员;成员函数有构造函数、析构函数。定义带默认参数值的构造函数,默认值为:2021001,“Lili”,19,89.5。定义析构函数,析构时输出:学号,姓名,以及提示字符串“~~~”。
设计研究生类,从学生类公有继承,数据成员增加:研究方向(字符串类型);成员函数有构造函数、析构函数。构造函数中输出提示信息“construction”,并读取用户输入的研究方向信息给新增成员初始化;定义析构函数,析构时输出:学号,姓名,研究方向,以及提示字符串“~~~”。
编写主程序测试代码,定义一个不带参数的学生类对象。再定义一个不带参数的研究生类对象。
输入格式:
输入研究方向字符串,不带空格,以回车结束
输出格式:
每行输出一个学生或研究生信息,例如:学号,姓名,~~~,以逗号分隔
输入样例:
AI
输出样例:
construction
AI
2021001,Lili,AI,~~~
2021001,Lili,~~~
2021001,Lili,~~~
时间限制:500ms内存限制:32000kb
#include<iostream>
using namespace std;
class student
{
protected:
int id;
string name;
int age;
float score;
public:
student(int i=2021001,string n="Lili", int a = 19, float s = 89.5)
{
id = i;
name = n;
age = a;
score = s;
}
~student()
{
cout << id << "," << name << "," << "~~~" << endl;
}
};
class postgraduate :public student
{
public:
string field;
postgraduate(string f)
{
cout << "construction" << endl;
field = f;
}
~postgraduate()
{
cout << id << "," << name << "," << field << "," << "~~~" << endl;
}
};
int main()
{
string field;
cin >> field;
student s1;
postgraduate p1(field);
return 0;
}