c++代码重用之私有继承
来源:互联网 发布:服装销售软件 编辑:程序博客网 时间:2024/06/03 23:46
在C++has-a关系中,还有一种实现途径叫—私有继承。
使用私有继承,基类的共有成员和保护成员都成派生类的私有成员,虽然基类方法因此不会成为派生对象共有接口的一部分,但可以在派生类的成员函数中使用它们。派生类不继承基类的接口。
1、初始化基类组件
隐式的继承组件而不是成员对象将影响代码的编写,例如
Student(const char *str,const double *pd,int n) :name(str),scores(pd,n){}
对于继承类,再使用成员初始化列表的时候使用的是类名,而不是成员名
Student(const char *str,const double *pd,int n) :std::string(str),ArrayDb(pd,n){}
上述是从String类派生出Student类,Student方法可以使用String方法来访问String组件。
2、访问基类的方法
在私有继承中,只能在派生类的方法中使用基类的方法,和包含这种has-a关系不同的是包含是使用对象名来调用基类方法,而私有继承是使用类名和作用于域解析运算符来调用方法。
3、访问基类对象
通过上面总结我们可以看到使用类名或 作用域解析运算符可以调用基类方法,那么,如果要调用基类的对象呢?
答案是使用强制类型转换。
4、访问基类的友元函数
因为友元不属于类,所以不能用类名显示地限定函数名来访问基类的友元函数,但是可以通过显式的转换为基类来调用正确的函数。例如
ostream & operator<<(ostream & os,const Student & stu){ os<<"Scores for"<<(const String &)stu<<":\n"; }
阅读全文
0 0
- c++代码重用之私有继承
- 代码重用,多重继承
- C/C++--私有继承
- 《Object-Oriented Programming With ANSI-C》之第四章(继承——代码重用和改进)
- C++:私有继承
- C++之私有继承
- C++之私有继承
- C/C++:private私有继承
- c++:私有继承,公有继承,保护继承
- c/c++整理--私有继承
- 利用继承进行JAVA的代码重用
- 代码重用(继承和组合)
- JAVA代码重用机制复用类之继承语法(附源码)
- 模块代码重用之BaseDao
- C++继承之公有继承、私有继承、保护继承
- 编程算法 - 不能被继承的类(私有构造函数) 代码(C++)
- C++:公有继承、私有继承和保护继承
- 【C++】解析共有继承、私有继承、保护继承区别联系
- Java基础-网络编程之UDP编程
- Dapper执行Sql语句HitCache导致很慢
- JavaScript之面向对象研究一
- 【剑指offer】和为S的连续正数序列
- Javascript高级程序设计学习笔记(二)
- c++代码重用之私有继承
- 如何使用火狐浏览器的Poster插件进行post请求
- POJ 2513 Colored Sticks——字典树+并查集+欧拉回路
- java加密与解密的艺术(一)——何谓数据安全?
- Spring Boot系列五 Spring @Value 属性注入使用总结二
- # Android 自定义View(二) 下雨效果
- 事务专题(二)
- 系统集成项目管理工程师学习笔记(五)项目整理管理
- 使用Hexo + Github搭建自己的私人博客