访问控制与继承

每个类分别控制自己的成员初始化过程,与之类似,每个类还分别控制着成员对于派生类来说是否可访问。

受保护的成员

如前所述,一个类使用protected关键字来声明那些它希望与派生类分享但是不想被其他公共访问使用的成员。protected说明符可以看做是public和private中和后的产物:

时间: 2024-11-10 01:35:03

访问控制与继承的相关文章

C++类访问控制及继承

一.C++类的访问控制有三类:public,protected和private. 类访问控制符 类成员可被哪些对象访问 public 1.类的成员函数.2.类对象.3.友元.4.子类成员函数 protected 1.类的成员函数.2.友元.3.子类成员函数 private 1.类的成员函数.2.友元 二.C++类的继承 继承方式也有三种:public,protected和private. 继承之后,基类成员的可访问性会发生变化,如下表: public继承 基类 public protected

【足迹C++primer】53、访问控制和继承

访问控制和继承 public: 公有类型 private: 私有类型 protected: 保护类型 当一个类的成员定义为public,就能够在类外访问,包括它的派生类. 当一个成员定义为private,它仅能在类内访问,不能被它的派生类访问. 当一个成员定义为proteced,它仅能在类内访问,但是能被它的派生类访问. 当一个成员没有指定访问说明符时,默认为private. 派生类成员或友元可以访问受保护的成员 但只有只有通过派生类对象来访问. class Base { protected:

OOP2(虚函数/抽象基类/访问控制与继承)

通常情况下,如果我们不适用某个函数,则无需为该函数提供定义.但我们必须为每个虚函数都提供定义而不管它是否被用到了,这因为连编译器也无法确定到底会适用哪个虚函数 对虚函数的调用可能在运行时才被解析: 当某个虚函数通过指针或引用调用时,编译器产生的代码直到运行时才能确定应该调用哪个版本的函数.被调用的函数是与之绑定到指针或引用上的对象的动态类型相匹配的那一个 注意:动态绑定只有当我们通过指针或引用调用虚函数时才会发生.当我们通过一个具有普通类型(非引用非指针)的表达式调用虚函数时,在编译时就会将调用

面向对象程序设计——抽象基类,访问控制与继承,继承中的类作用域,拷贝函数与拷贝控制

一.抽象基类 1)纯虚函数 和普通的虚函数不同,一个纯虚函数无须定义.我们通过在函数体的位置(即在声明语句的分号之前)书写=0就可以将一个虚函数说明为纯虚函数.其中,=0只能出现在类内部的虚函数声明语句处. 值得注意的是,我们也可以为纯虚函数提供定义,不过函数体必须定义在类的外部.也就是说,我们不能在类的内部为一个=0的函数提供函数体. 2)含有纯虚函数的类是抽象基类 含有(或者未经覆盖直接继承)纯虚函数的类是抽象基类.抽象基类负责定义接口,而后续的其他类可以覆盖该接口.我们不能直接创建一个抽象

c++访问控制与继承

最近,决定认真开始记录自己的学习之路. c++类的访问控制有public.private和protected. 首先要分简单的基类和派生类情况,不是很容易混淆与多级继承时的访问控制.自己原先搞得不清楚,也正是因为没有分开二种情况对待. 在简单的基类和派生类情况中,其访问控制,可以简单总结: public:  1.成员函数   2.类对象   3.友元 4.子类成员函数 private: 1.成员函数  2.友元 protected:  1.成员函数  2.友元  3.子类成员函数 这些基本都清楚

面向对象(访问控制、继承、重载)

=begin Public 方法: Public 方法可被任意对象调用.默认情况下,方法都是 public 的,initialize 方法总是 private 的. Protected 方法: Protected 方法只能被类及其子类的对象调用.访问也只能在类及其子类内部进行. Private 方法: Private 方法不能被明确的接受者调用,其接受者只能是self,所以只能在当前对象的上下文中被调用 =end class Box # 构造器方法 def initialize(w,h) @wi

[C++]访问控制与继承(public,protect,private) 有时间再整理!!!

http://www.cnblogs.com/chio/archive/2007/06/11/779408.html http://www.cnblogs.com/SelaSelah/archive/2012/08/12/2634256.html http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html http://bbs.csdn.net/topics/380193036 http://www.cnblogs.c

【C/C++】继承与访问控制

常见问题 Q1. 类child从类parent公有派生,则类child可以访问类parent中的哪些成员? A. public成员 B. private成员 C. protected成员 D. 数据成员 Q2. 类child从类parent公有派生,若有"child c;",那么c可以访问类parent中的哪些成员? A. public成员 B. private成员 C. protected成员 D. 都不能访问 Q3. 类child从类parent私有派生,则类child可以访问类p

(继承)virtual与访问控制

之前只注意过访问控制与继承的关系,这边不多说,今天看到代码看到virtual放在private里,并且还有派生类没有override public里的virtual,此时调用时啥情况了,这边有点晕,看下面代码 首先最基本的多态代码 #include <iostream> #include <string> using namespace std; class animal { public: //animal(); //~animal(); virtual void speakou