基类成员访问方式
时间:2019-09-29
本文章向大家介绍基类成员访问方式,主要包括基类成员访问方式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.通过派生类的对象直接访问。前提是public继承
2.通过基类成员函数直接访问基类成员。无论哪种继承方式。基类的public和private都不可以以这种方式访问
3.通过基类名称访问被派生类重定义所隐藏的成员
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 class Rectangle 5 { 6 public: 7 void setLength(double h) { 8 length = h; 9 } 10 void setWidth(double w) 11 { 12 width = w; 13 } 14 double getLength() 15 { 16 return length; 17 } 18 double getWidth() 19 { 20 return width; 21 } 22 double area() 23 { 24 return width*length; 25 } 26 double volume() 27 { 28 return 0; 29 } 30 void print() 31 { 32 cout << "\nLength = " << length << "\nWidth = " << width; 33 } 34 protected: 35 double length; 36 double width; 37 }; 38 39 class Cube:public Rectangle 40 { 41 public: 42 void setHigh(double h) 43 { 44 high = h; 45 } 46 double getHigh() 47 { 48 return high; 49 } 50 double area() 51 { 52 //重定义area函数 53 return 2*(width*length + width*high + high*length); 54 } 55 double volume() 56 { 57 return width*length*high; 58 } 59 60 void print() 61 { 62 Rectangle::print(); 63 cout << "\nhigh = " << high << endl; 64 } 65 private: 66 double high; 67 }; 68 69 int main() 70 { 71 Cube c1; 72 c1.setLength(4); 73 c1.setHigh(3); 74 c1.setWidth(5); 75 76 c1.Rectangle::print(); 77 c1.print(); 78 cout << "Cube area = " << c1.area() << endl; 79 cout << "Cube bottom area = " << c1.Rectangle::area() << endl; 80 cout << "Cube volume = " << c1.volume() << endl; 81 return 0; 82 }
原文地址:https://www.cnblogs.com/mch5201314/p/11607547.html
- tomcat请求处理分析(三) 绑定本地端口监听请求
- 利用FFmpeg对火眼一体摄像机的回调数据进行处理:YUV转H264,H264封装flv,所有输入都是在内存中。
- MySQL 传统复制中常见故障处理和结构优化案例分析
- sql带条件查找最小缺失编号
- activiti学习笔记(六) 监听器
- activiti学习笔记(五) 流程部署
- 打开文件open()函数的使用方法详解
- activiti学习笔记(四) 配置器
- WaitForMultipleObjects用法详解,一看就懂
- activiti学习笔记(三) 监听生命周期
- Assignment 2 | 斯坦福CS231n-深度学习与计算机视觉课程
- 五个值得深思的PHP面试题
- 5个值得深思的 PHP 面试问题
- activiti学习笔记(二) 获取流程实例
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 团体程序设计天梯赛-练习集 L1-052 2018我们要赢
- 团体程序设计天梯赛-练习集 L1-053 电子汪
- 团体程序设计天梯赛-练习集 L1-056 猜数字
- PAT (Basic Level) Practice (中文)1001 害死人不偿命的(3n+1)猜想
- PAT (Basic Level) Practice (中文)1002 写出这个数
- PAT (Basic Level) Practice (中文)1004 成绩排名
- PAT (Basic Level) Practice (中文)1006 换个格式输出整数
- PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题
- Ceph分布式存储日常运维管理手册
- MyBatis为了解决二级缓存脏读问题,究竟做了那些骚操作!
- PAT (Basic Level) Practice (中文)1009 说反话
- PAT (Basic Level) Practice (中文)1011 A+B 和 C
- PAT (Basic Level) Practice (中文)1013 数素数
- PAT (Basic Level) Practice (中文)1012 数字分类
- PAT (Basic Level) Practice (中文)1016 部分A+B