13周项目1
来源:互联网 发布:数据挖掘属于哪个专业 编辑:程序博客网 时间:2024/04/26 05:36
原代码
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者:李慧慧 * 完成日期:2013 年 5 月 29 日 * 版 本 号:v1.0 * 输入描述: * 问题描述:【项目1】理解基类中成员的访问限定符和派生类的继承方式*由下面派生类StudentB对基类StudentA的继承……* 程序输出: * 问题分析: * 算法设计:略 */#include <iostream>#include<string>using namespace std;class StudentA //(1)修改studentA类中各数据成员和成员函数的访问限定符,并观察发生的现象{public: StudentA(int n,string nam,char s); void showA(); ~StudentA( ) { }protected: int num; string name; char sex ;};class StudentB: public StudentA //(2)修改此处的继承方式,并观察发生的现象{public: StudentB(int n,string nam,char s,int a,string ad); void showB( ); ~StudentB( ) { }private:int num; int age; string addr;};StudentA::StudentA(int n,string nam,char s){ num=n; name=nam; sex=s;}void StudentA::showA(){ cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl<<endl;}StudentB::StudentB(int n,string nam,char s,int a,string ad):StudentA(n,nam,s){ age=a; addr=ad;}void StudentB::showB( ){ cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl; cout<<"age: "<<age<<endl; cout<<"address: "<<addr<<endl<<endl;}int main( ) //(3)思考由于访问限定符和继承方式的改变,会引发什么现象的发生,并作出解释{ StudentB stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai"); StudentB stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing"); StudentA stud3(20010,"He-xin",'m'); stud1.showB( ); stud2.showA( ); stud3.showA( ); return 0;}
运行结果:
修改1:num不再是studentA的数据成员
#include <iostream>#include<string>using namespace std;class StudentA //(1)修改studentA类中各数据成员和成员函数的访问限定符,并观察发生的现象{public: StudentA(int n,string nam,char s); void showA(); ~StudentA( ) { }protected: //int num; string name; char sex ;};class StudentB: public StudentA //(2)修改此处的继承方式,并观察发生的现象{public: StudentB(int n,string nam,char s,int a,string ad); void showB( ); ~StudentB( ) { }private:int num; int age; string addr;};StudentA::StudentA(int n,string nam,char s){ //num=n; name=nam; sex=s;}void StudentA::showA(){ //cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl<<endl;}StudentB::StudentB(int n,string nam,char s,int a,string ad):StudentA(n,nam,s){ age=a; addr=ad;}void StudentB::showB( ){ cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl; cout<<"age: "<<age<<endl; cout<<"address: "<<addr<<endl<<endl;}int main( ) //(3)思考由于访问限定符和继承方式的改变,会引发什么现象的发生,并作出解释{ StudentB stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai"); StudentB stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing"); StudentA stud3(20010,"He-xin",'m'); stud1.showB( ); stud2.showA( ); stud3.showA( ); return 0;}
运行结果:
修改2
用私有继承方式声明派生类StudentB
int main( ) //(3)思考由于访问限定符和继承方式的改变,会引发什么现象的发生,并作出解释{ StudentB stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai"); StudentB stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing"); StudentA stud3(20010,"He-xin",'m'); stud1.showB( ); stud2.showA( );//错误,私有基类的公用成员函数在派生类中是私有函数 stud3.showA( ); return 0;}
- 13周项目1
- 第13周项目1
- 第13周 【项目 - 链表类】阅读项目
- 第十五周项目一-工资项目1
- 第五周项目项目1 电阻串联
- 第十三周项目-阅读项目1
- 第5周项目 项目1
- 第13周项目1-1
- 第13周项目1-(1)
- 第13周项目1 (1)
- 第13周项目1(1)
- 第13周项目1(2)
- 第13周项目1(3)
- 第13周项目1(4)
- 第13周项目-OJ平台1
- 第13周项目1-(2)
- 第13周项目1-(3)
- 第13周项目1(5)
- Discuz经典函数注释之authcode
- The type javax.servlet.ServletContext cannot be resolved. It is indirectly referenced from required解
- socket mina 学习
- CI框架百问百答:宣传一下CodeIgniter怎么安装?-第2问
- cocos2dx监听home键,锁屏,后台转前台暂停功能
- 13周项目1
- 容器迭代器失效问题
- 全角输入和半角输入
- 【mfxp系统】xp与Windows 98电脑互访问题如何解决
- Ubuntu命令行下的关机和重启
- Windchill中CAD文档Related Objects页面的References/Referenced By是何含义
- java内存模型和jvm回收浅谈
- NPOI的表格应用
- mysql数据库迁移/备份/恢复等操作说明