Effective C++ 学习笔记(21)
2011-08-07 00:01
316 查看
使公有继承体现“是一个”的含义
C++面向对象编程中一条重要的规则是:公有继承意味着 "是一个"。
当写下类 D("Derived" )从类B("Base")公有继承时,你实际上是在告诉编译器(以及读这段代码的人):类型D 的每一个对象也是类型B 的一个对象,但反之不成立;你是在说:B 表示一个比D 更广泛的概念,D 表示一个比B 更特定概念;你是在声明:任何可以使用类型B 的对象的地方,类型D 的对象也可以使用,因为每个类型D 的对象是一个类型B 的对象。相反,如果需要一个类型D 的对象,类型B 的对象就不行:每个D "是一个" B, 但反之不成立。
C++面向对象编程中一条重要的规则是:公有继承意味着 "是一个"。
当写下类 D("Derived" )从类B("Base")公有继承时,你实际上是在告诉编译器(以及读这段代码的人):类型D 的每一个对象也是类型B 的一个对象,但反之不成立;你是在说:B 表示一个比D 更广泛的概念,D 表示一个比B 更特定概念;你是在声明:任何可以使用类型B 的对象的地方,类型D 的对象也可以使用,因为每个类型D 的对象是一个类型B 的对象。相反,如果需要一个类型D 的对象,类型B 的对象就不行:每个D "是一个" B, 但反之不成立。
相关文章推荐
- C++之Effective STL学习笔记Item21
- EffectiveC++学习笔记-条款48
- More Effective C++ 学习笔记(1)
- Effective C++ 学习笔记(7)
- “Effective C++ Third Edition”学习笔记(三)
- Effective C++ 学习笔记 01 const关键字
- Teach Yourself Visual C++ 6 in 21 Days(C++ 21天自学速成) 学习笔记
- Effective C++ 学习笔记(20)
- Effective C++ 学习笔记(24)
- Effective C++ 学习笔记
- More Effective C++学习笔记-条款1|2|3|4
- C/C++学习笔记21:句柄与指针
- Effective C++ 学习笔记 00 概述
- Effective C++ 学习笔记(十三)
- Effective C++ 学习笔记(三)
- Effective C++学习笔记_条款42:了解typename的双重意义
- Effective C++ 学习笔记(11)
- Effective C++ 学习笔记(18)
- Effective C++ 学习笔记:避免public接口出现数据成员
- C++学习笔记21,对象赋值