第十一周阅读程序(补充)----(2)改变继承类型
来源:互联网 发布:toblerone淘宝 编辑:程序博客网 时间:2024/06/01 12:56
问题及代码:
将继承类型改为protected 或者private 类型
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:zwj.cpp *作 者:张伟晶 *完成日期:2016年5月10日 *版 本 号:v1.0 * *问题描述:阅读程序 *输入描述: *程序输出: */#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:protected 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;}
错误提示:
分析:
继承类型改变后访问权限改变了,注释掉部分的代码没有权限了,会出错。
注意!!!!!!!!!
如果是保护继承,为什么b1.showA 不对????????????????
答:::::保护继承,showA 是基类的公有成员,保护继承后,就成了B类的保护成员,用户无法对保护成员操作,保护成员相当于私有成员。
1 0
- 第十一周阅读程序(补充)----(2)改变继承类型
- 第十一周阅读程序(补充)----(1)
- 第十一周阅读程序(补充)----(2)
- 第十、十一周阅读程序 继承和派生(2)
- 第十、十一周阅读程序 继承和派生(2)
- 第十一周阅读程序(补充)----(3)
- 第十一周阅读程序(补充)----(3.2)
- 第十、十一周阅读程序 继承和派生(3)
- 第十、十一周阅读程序 继承和派生(4)
- 第十、十一周阅读程序 继承和派生(3)
- 第十、十一周阅读程序 继承和派生(4)
- 第十一周阅读程序(2)
- 第十一周阅读程序(2)
- 第十一周 阅读程序(2)
- 第十一周 阅读程序(2)
- 第十一周阅读程序(2)
- 第十一周阅读程序(2)
- 第十周第十一周项目1阅读程序(2)
- npm使用手记
- Gradle 多环境配置
- 你是否还在质疑EF的性能
- ROS_Kinetic_01 在 Ubuntu 16.04 安装ROS Kinetic 全教程附资料和镜像 2017.02.15更新
- C 结构体嵌套一级指针 二级指针 动态分配内存
- 第十一周阅读程序(补充)----(2)改变继承类型
- leetcode.227. Basic Calculator II
- 基于openfire的webIM的实现机制想法
- Android------startActivityForResult的详细用法
- 第十一周实践项目(3)
- poj1182食物链(带权并查集+路径压缩)
- STL C++ string类不能使用memcpy,memset等一序列内存操作
- Android屏幕保护KeyguardManager相关内容学习
- Spark-RDD API