理解C++面向对象

“继承和面向对象设计” 的简介中,我曾强调,理解不同的面向对象构件在C++中的含义十分重要。这和仅仅知道C++语言的规则有很大的不同。例如,C++规则说,如果类D从类B公有继承,从D的指针到B的指针就有一个标准转换;B的公有成员函数将被继承为D的公有成员函数,等等。这些规则都是正确的,但在将设计思想转化为C++的过程中,它们起不到任何作用。相反,你需要知道,公有继承意味着 “是一个”,如果D从B公有继承,类型D的每一个对象也 “是一个” 类型B的对象。因而,如果想在设计中表示 “是一个”,就自然会想到使用公有继承。