C++ Primer学习-第15章 面向对象编程

来源:互联网 发布:联华文具淘宝 编辑:程序博客网 时间:2024/05/17 03:37
15.1 面向对象编程:概述
  • 在C++中,基类必须指出希望派生类重新定义那些函数,定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为学虚函数。
15.2 定义基类和派生类
  • 在C++中,通过基类的引用(或指针)调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这一事实是动态绑定的关键。用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所指对象的实际类型所定义的。
  • 基类通常应将派生类需要重定义的任意函数定义为虚函数。
  • 对于非虚函数的调用在编译时确定。
  • 除了构造函数之外,任意非static成员函数都可以是虚函数。保留字virtual只在类内部的成员函数声明中出现,不能用在类定义体外部出现的函数定义上。
  • 访问控制和继承:在基类中,public和private标号具有普通含义:用户代码可以访问类的public成员而不能访问private成员,private成员只能由基类的成员和友元访问。。派生类对基类的public和private成员的访问权限与程序中任意其他部分一样:它可以访问public成员而不能访问private成员。有时候作为基类的类具有一些成员,它希望允许派生类访问但禁止其他用户访问这些成员。对于这样的成员应使用是保护的访问标号(protected access label)。protected成员可以被派生类对象访问但不能被该类型的普通用户访问。
  • protected成员:派生类只能通过派生类对象访问其基类的protected成员,派生类对象对其基类类型对象的protected成员没有特殊访问权限。
15.4 构造函数和复制控制
15.5 继承情况下的类作用域
在继承情况下,派生类的作用域嵌套在基类的作用域中。如果不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义。

0 0