正在加载图片...
②公有派生是基类中所有的公有成员,在派生类中也都是公有的。它不必一一说明,而 在派生类定义时,在基类前加一个 public关键字。如: class public b ③保护派生,基类的公有成员和保护成员在派生类中是保护成员,仅能在派生类的成员 中被使用,而不允许派生类的对象使用。 Access specifier是 protected 表5.1列出了成员访问控制的各种情况。 继承性质 基类性质 派生类性质 Public rotected Protected Private 不可访问 I Protected [ Public Protected Protected Protected 不可访问 private Public Protected (3)派生类对基类成员直接访问问题 派生类不能访问基类的私有成员,若要访问必须使用基类的接口,即通过基成员函数。 如何直接访问类成员,有两种方法可选: ①在类定义体中增加保护段( protected),将基类私有成员提供派生类访问的部分放置 在保护段 ②将需要访问基类私有成员的派生类成员函数声明为基类的友元 例5.4]派生类对基类成员的直接访问EX54.CPP。(?) (4)访问域的调整规则 使用作用域符(::)可以调整访问域,但要注意其限制条件 ①访问声明只能对变量或函数名,不能说明类型和参数:重载函数只需一个声明即可 ②不能对私有段成员作访问声明,必须保护封装性。 ③只能在相应的段(保护或公有段)作访问声明,不能改变所属段。即基类成员被调整 后,在派生类中的访问权限既不能扩大也不能缩小。基类中的公有成员只能被调整为公有成 员,保护成员只能被调整为保护成员,私有成员不可调整。 例5.5]访问域的调整EX55.CPP class base i protected int b. private②公有派生是基类中所有的公有成员,在派生类中也都是公有的。它不必一一说明,而 在派生类定义时,在基类前加一个 public 关键字。如: class:public b { …… }; ③保护派生,基类的公有成员和保护成员在派生类中是保护成员,仅能在派生类的成员 中被使用,而不允许派生类的对象使用。Access_specifier 是 protected。 表 5.1 列出了成员访问控制的各种情况。 继承性质 基类性质 派生类性质 Public Public Public Protected Protected Private 不可访问 Protected Public Protected Protected Protected Private 不可访问 private Public Private Protected Private Private 不可访问 (3)派生类对基类成员直接访问问题。 派生类不能访问基类的私有成员,若要访问必须使用基类的接口,即通过基成员函数。 如何直接访问类成员,有两种方法可选: ①在类定义体中增加保护段(protected),将基类私有成员提供派生类访问的部分放置 在保护段。 ②将需要访问基类私有成员的派生类成员函数声明为基类的友元。 [例 5.4] 派生类对基类成员的直接访问 EX5_4.CPP。(?) (4)访问域的调整规则 使用作用域符(::)可以调整访问域,但要注意其限制条件: ①访问声明只能对变量或函数名,不能说明类型和参数;重载函数只需一个声明即可。 ②不能对私有段成员作访问声明,必须保护封装性。 ③只能在相应的段(保护或公有段)作访问声明,不能改变所属段。即基类成员被调整 后,在派生类中的访问权限既不能扩大也不能缩小。基类中的公有成员只能被调整为公有成 员,保护成员只能被调整为保护成员,私有成员不可调整。 [例 5.5] 访问域的调整 EX5_5.CPP。 class base { public: int a; protected: int b; private: int c; };
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有