1设计学生类,数据成员包括学号、姓名、年龄、成绩,为保护成员;成员函数有构造函数、析构函数。定义带默认参数值的构造函数,默认值为:2021001,“Lili”,19,89.5。定义析构函数,析构时输出:学号,姓名,以及提示字符串“~~~”。
设计研究生类,从学生类公有继承,数据成员增加:研究方向(字符串类型);成员函数有构造函数、析构函数。构造函数中输出提示信息“construction”,并读取用户输入的研究方向信息给新增成员初始化;定义析构函数,析构时输出:学号,姓名,研究方向,以及提示字符串“~~~”。
编写主程序测试代码,定义一个不带参数的学生类对象。再定义一个不带参数的研究生类对象。

#include <iostream>
using namespace std;

class student{
  protected:
      int id;
      string name;
      int age;
      float score;
  public:
     student(int myid=2021001,string myname="Lili",int myage=19,float myscore=89.5)
    {
        id=myid;name=myname;
        age=myage;
        score=myscore;
    }
    ~student()
    {
        cout<<id<<','<<name<<','<<"~~~"<<endl;
    }
};

class graduate_stu: public student
{
private:
    string direction;
public:
     graduate_stu()
    {
        cout<<"construction"<<endl;
        cin>>direction;

    }
    ~graduate_stu()
    {
        cout<<id<<','<<name<<','<<direction<<','<<"~~~"<<endl;
    }
};
int main()
{
    student s1;
    graduate_stu s2;
}

1 设计学生类,数据成员包括学号、姓名、年龄、成绩,为保护成员;成员函数有构造函数、信息输出函数pr。定义带默认参数值的构造函数,默认值为:2021001,“Lili”,19,89.5。定义信息输出函数pr,输出:学号,姓名,年龄,成绩。
设计研究生类,从学生类公有继承,数据成员增加:研究方向(字符串类型);成员函数有构造函数、信息输出函数pr。构造函数中输出提示信息“construction”,并读取用户输入的研究方向信息给新增成员初始化;定义信息输出函数pr,输出:学号,姓名,研究方向。
编写主程序测试代码,定义一个学生指针,指向一个研究生类对象(申请堆空间),通过指针调用信息输出函数pr,看看能不能输出研究方向。(2分)

#include <iostream>
using namespace std;

class student{
  protected:
      int id;
      string name;
      int age;
      float score;
  public:
     student(int myid=2021001,string myname="Lili",int myage=19,float myscore=89.5)
    {
        id=myid;name=myname;
        age=myage;
        score=myscore;
    }
    void pr()
    {
       cout<<id<<','<<name<<','<<age<<','<<score<<endl;
    }
    ~student()
    {
        //cout<<id<<','<<name<<','<<"~~~"<<endl;
    }
};

class graduate_stu: public student
{
private:
    string direction;
public:
     graduate_stu()
    {
        cout<<"construction"<<endl;
        cin>>direction;

    }
    void pr()
    {
        cout<<id<<','<<name<<','<<direction<<endl;
    }
    ~graduate_stu()
    {
       // cout<<id<<','<<name<<','<<direction<<','<<"~~~"<<endl;
    }
};
int main()
{
    student *p;
    p=new graduate_stu;
    p->pr();
}

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐