6.继承与面向对象设计
来源:互联网 发布:数据挖掘异常检测方法 编辑:程序博客网 时间:2024/05/29 17:50
条款32:确定你的public继承塑模出is-a关系
- public inheritance 意味“is-a的关系”
- 如果令class A以public形式继承class B,则意味着每一个类型为A的对象同时也是一个类型为B的对象,反之则不成立。也意味着适用于class B身上的每一件事情一定也适应于class A上
条款33:避免遮掩继承而来的名称
- 适应情况:在base classes中的某个函数有几种overload类型,在derived classes中要对base classes中某一个重载函数进行override,此时会覆盖base classes中所有该重载函数
class CBase
{
void f1();
void f1(int);
}
class CDerived : public CBase
{
void f1(int);
}
CDerived d;
d.f1(3); //ok, 调用CDerived:void f1(int)
d.f1(); //错误!因为CDerived:f1()遮掩了CBase:f1()
- derived classes内的名称会遮掩base classes内的名称
- 为了让遮掩的名称再见天日,可使用using 声明式或转交函数
class CDerived : public CBase
{
using CBase:f1;
void f1(int);
}
CDerived d;
d.f1(3); //ok, 调用CDerived:void f1(int)
d.f1(); //ok, 调用CBase:void f1()
- 6.继承与面向对象设计
- 6.继承与面向对象设计
- 继承与面向对象设计
- 继承与面向对象设计
- effective C++: 6.继承与面向对象设计
- Effective C++ 6.继承与面向对象设计
- [Effective C++] 继承与面向对象设计
- 第六章 继承与面向对象设计
- 第六章 继承与面向对象设计
- Effective C++ -- 继承与面向对象设计
- [C++]继承与面向对象设计
- [C++]继承与面向对象设计
- 《Effective C++》继承与面向对象设计
- 6 继承与面向对象的设计
- 关于面向对象设计中继承与组合的选择
- Effective C++读书笔记---继承与面向对象设计
- effective C++ 继承与面向对象设计 笔记
- Effective C++(六)继承与面向对象设计
- 使用sql server2005非常慢的解决方案
- JSF2.0与Spring3集成
- DNS域名服务 BIND (下)
- 用session实现购物车(含设计分析及源代码)part3
- C语言inline详细讲解
- 6.继承与面向对象设计
- [Android实例] android中的handler案例
- FTP~~URL对FTP的支持原因
- JSF EL的内嵌变量
- ALTER SESSION SET EVENTS 'immediate trace name controlf level 3';
- WinCE启动界面的定制
- WinCE动态修改启动LOGO
- SELinux 相关学习资料
- DirecX中使用纹理