Protected关键字和抽象基类

王朝other·作者佚名  2006-01-30
窄屏简体版  字體: |||超大  

Protected关键字和抽象基类

学习人:HSLY

学习书籍:C++ Primer Plus(第四版)中文版

撰写日期:2004-7-11

章节:13.5 P418

Protected关键字

private和protected之间的区别只有在基类派生的类中才会表现出来。派生类的成员可以直接访问基类的保护成员,当不能直接访问基类的私有成员。因此,对于外部世界来说,保护成员的行为和私有成员相似;但是对于派生类来说,保护成员的行为与公有成员相似。

抽象基类(Abstract base class, ABC)

比如从Ellipse(椭圆)和Circle(圆)类抽象出它们的共性,将这些特性放到一个抽象基类中。然后从该ABC派生出Circle和Ellipse类。这样,便可以使用基类指针数组同时管理Circle和Ellipse对象(即可是使用多态方法)

C++通过使用纯虚函数(pure virtual function)提供为实现的函数。纯虚函数声明结尾处为=0:

virtual double Area() const = 0 ; //这个就是纯虚函数

当类声明中包含纯虚函数时,则不能创建该类的对象。这里的理念是:包含纯虚函数的类只能做基类,要成为真正的抽象基类,必须至少包含一个纯虚函数,原型中的=0是虚拟函数成为了纯虚函数。

实际应用注意事项:使用抽象基类实施接口原则

可以将抽象基类看作是一重必须实施的接口。抽象基类要求派生类覆盖其纯虚函数――迫使派生类遵循ABC所有设置的接口规则。这种模型在基于组建的编程模式很常见,在这样情况下,使用ABC使得组件设计人员能够制定“接口约定”,这样确保了ABC派生得所有组件都至少支持ABC指定的功能。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航