第10、11周项目(2)-储存班长信息的学生类

来源:互联网 发布:mac怎么删除下载的软件 编辑:程序博客网 时间:2024/06/05 02:56

问题及代码:

/**copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称:hellow.cpp*作者:田甜*完成日期:2016年5月14日*版本号:v1.0**问题描述:上面是声明好的类及测试函数,请完成类中成员函数的定义,使运行结果如图所示。*输入描述:////*程序输出:学生及其班长信息*/#include <iostream>using namespace std;class Stu{public:    Stu(string nam,int n):name(nam),num(n){}    void display();protected:    string name;    int num;};class StuDetial:public Stu{private:    Stu monitor;    int age;    string addr;public:    StuDetial(string nam,int n,string m_nam,int m_n,int age,string ad):Stu(nam,n),monitor(m_nam,m_n),age(age),addr(ad){}    void show();    void show_monitor();};void Stu::display(){    cout<<"姓名:"<<name<<endl;    cout<<"学号:"<<num<<endl;}void StuDetial::show(){    cout<<"姓名:"<<name<<endl;    cout<<"学号:"<<num<<endl;    cout<<"年龄:"<<age<<endl;    cout<<"地址:"<<addr<<endl;}void StuDetial::show_monitor(){    cout<<"班长信息为:"<<endl;    monitor.display();}int main(){    StuDetial s("Xiaopenyou",10010,"Banzhang",10011,20,"blue_sky");    s.show();    s.show_monitor();    return 0;}
运行结果:

心得:

要在派生类中使用基类中的数据成员,需要把基类中的数据成员的访问权限设置为protect型。

(2)将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。

问题及代码:

/**copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称:hellow.cpp*作者:田甜*完成日期:2016年5月14日*版本号:v1.0**问题描述:将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。*输入描述:////*程序输出:学生及其班长信息*/#include <iostream>using namespace std;class Stu{public:    Stu(string nam,int n):name(nam),num(n){}    void display();    string get_name()    {        return name;    }    int get_num()    {        return num;    }private:    string name;    int num;};class StuDetial:public Stu{private:    Stu monitor;    int age;    string addr;public:    StuDetial(string nam,int n,string m_nam,int m_n,int age,string ad):Stu(nam,n),monitor(m_nam,m_n),age(age),addr(ad){}    void show();    void show_monitor();};void Stu::display(){    cout<<"姓名:"<<get_name()<<endl;    cout<<"学号:"<<get_num()<<endl;}void StuDetial::show(){    cout<<"姓名:"<<get_name()<<endl;    cout<<"学号:"<<get_num()<<endl;    cout<<"年龄:"<<age<<endl;    cout<<"地址:"<<addr<<endl;}void StuDetial::show_monitor(){    cout<<"班长信息为:"<<endl;    monitor.display();}int main(){    StuDetial s("Xiaopenyou",10010,"Banzhang",10011,20,"blue_sky");    s.show();    s.show_monitor();    return 0;}

运行结果:


心得体会:

增加public型的接口函数即可。


0 0
原创粉丝点击