第11周 程序阅读——继承和派生(3)
来源:互联网 发布:网络视频监控施工方案 编辑:程序博客网 时间:2024/05/01 09:16
问题描述:
阅读程序,请写出这些程序的运行结果
#include<iostream>using namespace std;class A{private: int x;protected: int y;public: int z; A(int a,int b,int c) { x=a; y=b; z=c; } int Getx() { return x; } int Gety() { return y; } void ShowA() { cout<< "x="<<x<<'\t'; cout<<"y="<<y<<'\t'; cout<<"z="<<z<<'\n'; }};class B:public A //修改点(见后面阅读要求){private: int m,n;public: B(int a,int b,int c,int d,int e):A(a,b,c) { m=d; n=e; } void Show() { cout<<"m="<<m<<'\t'<<"n="<<n<<'\n'; cout<<"x="<<Getx()<<'\t'; cout<<"y="<<y<<'\t'<<"z="<<z<<'\n'; } int Sum() { return (Getx()+y+z+m+n); }};int main(){ B b1(1,2,3,4,5); b1.ShowA(); b1.Show(); cout<< "Sum="<<b1.Sum()<<'\n'; cout<<"x="<<b1.Getx()<<'\t'; cout << "y=" <<b1.Gety()<<'\t'; cout << "z="<<b1.z<<'\n'; return 0;}
先阅读程序,写出你预想的运行结果,再记录运行结果,如果两者有差异,再读程序给出解释。
观察基类A中成员的访问权限制以及派生类B中对这些成员的访问方法。
请将class B:public A 中的public改为protected或者删除,对程序进行编译,解释出现的情况。
预计运行结果:
x=1y=2 z=3
m=4n=5
x=1y=2z=3
sum=15
x=1y=2 z=3
实际运行结果:
修改后:
原因:因为是私有继承所以成员函数不能在类外访问,所以错误!
0 0
- 第11周 程序阅读——继承和派生(3)
- 第11周 程序阅读——继承和派生 自选阅读(3)
- 第11周 程序阅读-继承和派生3
- 第11周 程序阅读——继承和派生(1)
- 第11周 程序阅读——继承和派生(2)
- 第11周 程序阅读——继承和派生(4)
- 第11周 程序阅读——继承和派生 自选阅读(1)
- 第11周 程序阅读——继承和派生 自选阅读(2)
- 第11周 阅读程序-继承和派生2
- 第11周 程序阅读-继承和派生4
- 第10、11周程序阅读 继承和派生 1
- 第11周-阅读继承和派生
- 2015级C++第10、11周程序阅读(补充) 继承和派生
- 第10、11周程序阅读(补充) 继承和派生
- 第11周-程序阅读继承和派生构造析构函数顺序
- 2015级C++第10、11周程序阅读 继承和派生
- 《C++语言基础》程序阅读——继承和派生
- 第十、十一周阅读程序 继承和派生(3)
- Android开源项目分类汇总
- 从EclipseADT迁移到AndroidStudio
- Android开发之Intent.Action
- (一)Spring AOP:基于XML配置文件
- Docker的save和export命令的区别
- 第11周 程序阅读——继承和派生(3)
- 7.11
- 宜家V9-食品行业版设计目标与理念
- 求最大值和最大k个值
- 更改npm镜像源
- Android开发错误解决方法汇总
- 关于Java中方法调用时参数的传递
- 循环语句中的break、continue、return用法
- linux命令大全(自己制作,基于鸟书私房菜以及man)-A