您的位置:首页 > 编程语言 > C语言/C++

C++primer学习笔记----面向对象程序设计(1)

2017-06-11 14:16 106 查看
面向对象程序设计的核心是数据抽象、继承和动态绑定(多态)

基类负责定义在层次关系中所有类共同拥有的成员,每个派生类定义各自特有的成员。

对于某些函数,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明成虚函数。派生类必须在其内部对所有重新定义的虚函数进行声明。

C++语言中,当使用基类的引用(或指针)调用一个虚函数时将发生动态绑定。

基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作也是如此。

基类中与类型相关的成员函数,派生类需要对其提供自己的新定义以覆盖从基类继承而来的旧定义。

C++11新标准允许派生类显示地注明它使用某个成员函数覆盖了它继承的虚函数:在形参列表后,在const成员函数的const关键字后面,或在引用成员函数的引用限定符后面添加一个关键字override。

一个派生类对象,包含1.派生类自己定义的(非静态)成员的子对象。2.从基类继承的对应的子对象。

因为在派生类对象中含有与其基类对应的组成部分,所以能把派生类的对象当成基类对象来使用,也能将基类的指针或引用绑定到派生类对象中的基类部分上。(即为派生类到基类的类型转换)

派生类不能直接初始化从基类继承而来的成员,必须使用基类的构造函数来初始化它的基类部分。(每个类控制他自己的成语按初始化过程)

派生类对象初始化时,首先初始化基类的部分,然后按照声明的顺序依次初始化派生类的成员。

派生类可以访问基类的public成员和protected成员。

如果基类定义了一个static成员,则在整个继承体系中只存在该成员的唯一定义。

声明派生类时不能包含派生列表。

可将基类的指针或引用绑定到派生类对象上,当使用基类的引用(或指针)时,并不清楚该引用(或指针)所绑定对象的真实类型,可能是基类的对象,可能是派生类的对象。

因为每个派生类对象都包含一个基类部分,所以存在派生类向基类的类型转换,基类的引用或指针可以绑定到该基类部分上。

因为一个基类的对象可能是派生类对象的一部分也可能不是,所以不存在基类向派生类的类型转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++primer C++ 面向对象