C++面向对象程序设计

1、继承和动态绑定对程序的编写有两方面的影响:一是我们可以更容易地定义与其他类相似但不完全相同的新类;二是在使用这些彼此相似的类编写程序时,我们可以在一定程度上忽略掉他们的区别。

2、在C++语言中,当我们使用基类的引用(或指针)调用一个虚函数时将发生动态绑定。基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作也是如此。

3、成员函数如果没有被声明为虚函数,则其解析过程发生在编译时而非运行时。

4、派生类可以继承定义在基类中的成员,但是派生类的成员函数不一定有权访问从基类继承而来的成员。和其他使用基类的代码一样,派生类能访问公有成员,而不能访问私有成员。不过在某些时候基类中还有这样一种成员,基类希望它的派生类有权访问该成员,同时禁止其他用户访问。我们用受保护的(protected)访问运算符说明这样的成员。protected成员可以被该类的成员、友元和派生类成员访问,而不可以被该类型的普通用户访问。而private成员只能被基类的成员和友元访问,派生类不能访问。

5、一个派生类对象包含多个组成部分:一个含有派生类自己定义的(非静态)成员的子对象,以及一个与该派生类继承的基类对应的子对象,如果有多个基类,那么这样的子对象也有多个。因此,一个Bulk_quote对象包含四个数据元素:它从Quote继承而来的bookNo和price数据成员,以及Bulk_quote自己定影的min_qty和discount成员。因为在派生类对象中含有与其基类对应的组成部分,所以我们能把派生类的对象当成基类对象来使用,而且我们也能将基类的指针或引用绑定到派生类对象中的基类部分上。

Quote item;               //基类对象
Bulk_quote buik;         //派生类对象
Quote *p = &item;      //p指向Quote对象
p = &bulk;                  //p指向bulk的Quote部分
Quote &r = bulk;         //r绑定到bulk的Quote部分

  这种转换通常称为派生类到基类的类型转换。和其他类型转换一样,编译器会隐式地执行派生类到基类的转换。这种隐式转换意味着我们可以把派生类对象或者派生类引用用在需要基类引用的地方;同样的,我们也可以把派生类对象的指针用在需要基类指针的地方。

 

posted on 2019-04-28 14:29  EMH1899  阅读(212)  评论(0编辑  收藏  举报

导航