c类中的protected什么时候用

2021-03-07 07:36:16 字数 4688 阅读 1888

1楼:匿名用户

protected,主要是介于public和private之间的一种针对继续关系而来的设计,一般很少用到

1.public继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:public, protected, private

2.protected继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:protected, protected, private

3.private继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:private, private, private

但无论哪种继承方式,上面两点都没有改变:

1.private成员只能被本类成员(类内)和友元访问,不能被派生类访问;

2.protected成员可以被派生类(类内)访问。

2楼:小呆瓜

类成员或者继承的时候用到

3楼:匿名用户

说实话,我做开发很多年了,基本很少用到。用的最多的还是public。

c++中,类的protected究竟有什么作用?

4楼:匿名用户

- 声明 private protected public

继承private x x x

protected x o o

public x o o

类外调用 x x o

由上图可见protected和public的区别:

在类外调用时,可以调用public成员,但是不能调用protected成员

也就这一个区别了。

c++类中public,private,protected的用法与区别。

5楼:匿名用户

protected类型的访问机制与private一样

在基类的派生类中,可以直接访问继承而来的protected成员,但是不能访问private限制的成员.所以在派生类中,可以访问基类继承而来的public和proected两种类型的成员.

在public公有派生下,继承而来的成员访问权限不变.protected派生下,public和protected都变成protected,private派生下,所有的继承下来都是private了

6楼:巴霞姝雍涤

在本类中,protected与private是相同的,但protected可以被继承,而private却不行。

只有公有成员才能在类的外部访问。如classa;aca;ca.a

//error

ca.b

//ok

ca.c

//error

cb.c

//error。虽然c也是b的成员,但c在被继承的时候变成私有或者受保护的成员了。

c++类的protected与private有何区别

7楼:兄弟连教育

这两个是访问类中成员权限的限制符.在类外如果想使用类中的成员,只能直接使用public类型的,protected和private都是不能访问的,对于类外使用而言,这两个是完全相同的.

但是在基类的派生类中,可以直接访问继承而来的protected成员,但是不能访问private限制的成员.所以在派生类中,可以访问基类继承而来的public和proected两种类型的成员.在public公有派生下,继承而来的成员访问权限不变.

protected派生下,public和protected都变成protected,private派生下,所有的继承下来都是private了.

c++中,基类protected能给子类直接调用?

8楼:匿名用户

公有继承不改变基类成员的属性,也就是说基类的protected成员在子类中还是protected属性。

而类的对象是不能访问protected成员的,但类的成员函数是能访问protected成员的。

所以,基类的成员函数能调用自己的protected成员(其对象不能),子类的成员函数也能调用基类的protected成员(其对象不能)

classa

protected:

voidprint()

{cout<<"xpoint:"<

综上:保护成员在对于类对象来说访问权限和私有成员一样,但是对于子类来说,子类能访问基类保护成员,但不能访问基类私有成员。

c++中,类的protected究竟有什么作用?

9楼:可以叫我表哥

protected专门就是为继承(子类)设计的 用public继承,基类所有的访问标识在子类不变, protected还是protected 。

c++编程思想中是这么说的,public意味着随后的定义对所有人都适用;private意味着除了该类型的创建者和该类型的内部成员函数之外,任何人都无法访问这些定义;而protected是继承的类可以访问protected的成员,但不能访问private的成员。

10楼:匿名用户

- 声明 private protected public

继承private x x x

protected x o o

public x o o

类外调用 x x o

由上图可见protected和public的区别:

在类外调用时,可以调用public成员,但是不能调用protected成员

也就这一个区别了。

11楼:赶紧撸毅管

错了,不管何种继承,基类的private成员派生类都无法访问,当然也就出现了protected成员,集合了public成员(对派生类) 和 private成员(对外部访问)的特点。

12楼:匿名用户

protected成员

被公有继承时,在你派生的这个类的内部成员中,能够访问。

比如class a

;class b : public a

//你可以在派生类b中访问到父类a的成员n。

~b(){}

};但是你不能在类的外部访问到父类的保护成员n。

比如下面的**就是错误的:

b x;

x.n = 1;

13楼:匿名用户

c/c++

关键字protected关键字(c++和c#)

具有protected访问控制级别的成员是半公开的,外界无法直接访问这个控制级别的成员,但是派生类的base指针(在c++中也可用引用访问)可以获得访问能力。protected与private基本相似,只有在继承时有较大的区别。继承的类可以访问protected成员,但是不能访问private成员。

以下是msdn提供的c# 中protected关键字的参考资料。

protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。有关 protected 与其他访问修饰符的比较,请参见可访问性级别。

仅当访问通过派生类类型发生时,基类的受保护成员在派生类中才是可访问的。例如,请看以下**段:

// protected_keyword.csusing system;

class a

class b : a

}语句 a.x =10 将生成错误,因为 a 不是从 b 派生的。

结构成员无法受保护,因为无法继承结构。

示例在此示例中,类 derivedpoint 从 point 派生;因此,可以从该派生类直接访问基类的受保护成员。

// protected_keyword_2.cs

using system;

class point

class derivedpoint: point

, y = ", dp.x, dp.y); }}

输出x = 10, y = 15

14楼:匿名用户

起保护作用,protected只有继承的类才可以访问

c++中,类的protected究竟有什么作用?

15楼:匿名用户

protected专门就是为继承(子类)设计的 用public继承,基类所有的访问标识在子类不变, protected还是protected 。 c++编程思想中是这么说的,public意味着随后的定义对所有人都适用;private意味着除了该类型的创建者和该类型的内部成员函数之c++中,类的protected究竟有什么作用?

16楼:

保护关键字,作用介于public和private之间,该关键字修饰的成员变量或函数外部无法直接使用,只有自己的类成员,以及它的继承类可以使用

C++中,类的protected究竟有什么作用

1楼 匿名用户 声明 private protected public 继承private x x x protected x o o public x o o 类外调用 x x o 由上图可见protected和public的区别 在类外调用时,可以调用public成员 但是不能调用protect...

C类调用另类中的方法,C# 一个类调用另一个类中的方法。

1楼 七彩虹科技 我虽然看的有点迷糊,但看完你和他们的问答以后,总结了一下,你是不是想这样 比如a是一个窗体类,b是另一个窗体类,你想在a的某一个函数里new一个b的对象并且让b显示出来,然后在b里面调用a的方法?如果是这样的话,你可以在b的构造函数里这么写public b a a 然后在b里面定义...

C的类库文件怎么用,如何向c#类库文件中添加类文件

1楼 匿名用户 先在项目 添加应用 浏览,找到freetextbox dll,并添加 在工具箱里右键 选项卡,找到freetextbox dll 添加控件。 你的工具箱上面就会出现freetextbox控件了,你就像使用文本框一样,一拖就可以了。 如何向c 类库文件中添加类文件 2楼 匿名用户 如图...