![]() |
1
324
私有成员只能在定义它们的类中访问。 在定义受保护成员的类和从该类继承的类中,可以访问受保护成员。 编辑:这两个类的朋友也可以访问,如果是受保护的成员,也可以通过其派生类的朋友访问。 编辑2:在问题的上下文中使用任何有意义的东西。您应该尽可能使成员成为私有的,以减少耦合并保护基类的实现,但是如果这不可能,那么使用受保护的成员。检查 C++ FAQ 为了更好地理解这个问题。 This question about protected variables 可能也有帮助。 |
![]() |
2
119
公众 所有人和所有人都可以访问A级的成员。 受保护的 类A的成员在代码之外是不可访问的,但可以从派生自A的任何类的代码访问。 私人的 类A的成员在代码之外或从派生自A的任何类的代码中都不可访问。 因此,最终,在受保护或私有之间进行选择可以回答以下问题: 您愿意对派生类的程序员给予多少信任? 默认情况下 ,假设派生类不受信任,并且 将您的成员设为私人 . 如果您有一个非常好的理由让母类的内部构件自由访问其派生类,那么您可以使它们受到保护。 |
![]() |
3
55
可以从派生类访问受保护的成员。私人的不行。
就“最佳实践”而言,这取决于。如果甚至有一种微弱的可能性,某人可能希望从您现有的类派生一个新的类,并且需要访问内部成员,那么就让它们受到保护,而不是私有的。如果它们是私有的,您的类可能很难轻易继承。 |
![]() |
4
21
MFC支持受保护的原因是它是一个框架。您可能希望子类化MFC类,在这种情况下,需要一个受保护的接口来访问类的一般使用不可见的方法。 |
![]() |
5
8
这完全取决于您想要做什么,以及您希望派生类能够看到什么。
|
![]() |
6
5
标记为的属性和方法
除非您不想使用或提供重写可能子类中的方法的可能性,否则我将使它们
|
![]() |
7
4
受保护的成员只能由类的后代和同一模块中的代码访问。私有成员只能由声明它们的类和同一模块中的代码访问。 当然,朋友的功能会把这个扔到窗外,但哦,好吧。 |
![]() |
8
4
私有成员只能从类中访问,受保护的成员可以在类和派生类中访问。它是OO语言中继承的一个特性。 您可以在C++中拥有私有的、受保护的和公共的继承,这将决定继承类中的派生类可以访问什么。例如,只有公共继承权。 |
![]() |
9
4
当然可以看看
Protected Member Variables
问题。建议使用私有作为默认值(就像C++一样)。
|
![]() |
10
3
私有的 =仅由母舰(基类)访问 (只有我父母才能进我父母的卧室) 受保护的 =母舰(基类)和她的女儿可以访问 (即只有我的父母才能进入我父母的卧室,但允许儿子/女儿进入父母的卧室) 公众的 =母舰(基类)、女儿和其他所有人都可以访问 (只有我的父母才能进我父母的卧室,但这是一个家庭聚会-米卡萨苏卡萨) |
![]() |
11
2
由于不需要公共成员函数来获取和更新派生类中受保护的成员,因此这会提高代码的效率并减少我们需要编写的代码量。然而,派生类的程序员应该知道他在做什么。 |
![]() |
12
1
私有成员只能在声明为“受保护成员”的同一类中访问,在声明为“受保护成员”的类中可以访问该成员及其继承的类。 |
![]() |
13
1
|
![]() |
14
1
MFC是一个用于Windows API的C++包装器,它更喜欢
成员如
成员如
有些成员必须执行线程和消息循环,不应访问或重写它们,因此它们被声明为
在C++结构中,成员是
|
![]() |
15
0
受保护的非静态基类成员可以由从该基类派生的任何类的成员和朋友访问,方法是使用以下方法之一:
|
![]() |
16
-2
private和protected访问修饰符是一个且相同的修饰符,只有在子(派生)类的基类范围之外才能访问基类的受保护成员。 它也同样适用于继承。 但是,使用私有修饰符,只能在基类的作用域或代码中访问基类成员,并且只能在其友元函数“”中访问该成员。 |