第十二周任务(一)

来源:互联网 发布:软件冲突蓝屏怎么办 编辑:程序博客网 时间:2024/05/22 17:24

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:理解基类中成员的访问限定符和派生类的继承方式。

* 作    者:       刘洋                     
* 完成日期:     2012   年   5    月  7  日
* 版 本 号:       1.0  
* 对任务及求解方法的描述部分
* 输入描述:由下面派生类Student1对基类Student的继承
* 问题描述:(1)请修改基类中成员的访问限定符和派生类的继承方式,考虑可能的运行结果或可能出现的错误,并在上机时进行验证、对比,达到理解派生类成员的访问属性的目的。
* 程序输出: 总结(1)的结果,将(1)的结果摘要写到报告中;最后用自己的话总结确定派生类成员的访问属性的原则,也写到报告中。


* 程序头部的注释结束

*/

#include<iostream>#include<string>using namespace std;class Student //(1)修改student类中各数据成员和成员函数的访问限定符,并观察发生的现象{public: Student(int n, string nam, char s) ;void show();~Student( ){ } protected: int num;string name;char sex ; };class Student1 : public Student //(2)修改此处的继承方式,并观察发生的现象{ public: Student1(int n, string nam, char s, int a, string ad) ;void show1( );~Student1( ){ }  private: int age; string addr; };Student :: Student(int n, string nam, char s) {num = n;name = nam;sex = s; }void Student :: show(){cout << "num: " << num << endl;cout << "name: " << name << endl;cout << "sex: " << sex << endl << endl;}Student1 :: Student1(int n, string nam, char s, int a, string ad) : Student(n, nam, s) {age = a; addr = ad;}void Student1 :: show1( ){cout << "num: " << num << endl;cout << "name: " << name << endl;cout << "sex: " << sex << endl;cout << "age: " << age << endl;cout << "address: " << addr << endl << endl;}int main( ){Student1 stud1(10010, "Wang-li", 'f', 19, "115 Beijing Road,Shanghai");Student1 stud2(10011, "Zhang-fun", 'm', 21, "213 Shanghai Road,Beijing");Student stud3(20010, "He-xin", 'm');stud1.show1( ); stud2.show( ); stud3.show( ); system("pause");return 0;}  


 

总结:

           1.不可访问的,派生类内和派生类外都不能访问。

         2.公共的,派生类内和派生类外都可以访问。

         3.私有的派生类内可以访问,派生类外不能访问。

        

原创粉丝点击