c – 这个类的一个朋友的类的方法中的本地类?

前端之家收集整理的这篇文章主要介绍了c – 这个类的一个朋友的类的方法中的本地类?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个外部类A.它有一个方法A :: fun.在这种方法中,它有一个本地或内部类B.我的问题是:B是A的朋友吗?

我认为不是.这样对吗?如果是这样,我认为让B类是A的朋友是非常有益的,因为B可以访问A的私人和受保护的成员.此外,由于B是一种方法中的本地方法,因此不能被其他人访问,因此作为A的朋友是安全的.如何解决方案让B访问A的私人和受保护的成员?

解决方法

不,他们不是朋友

但本地类具有与函数本身相同的访问名称功能.

标准说:

9.8 Local class declarations [class.local]

A class can be declared within a function definition; such a class is called a local class. The name of a local class is local to its enclosing scope. The local class is in the scope of the enclosing scope,and has the same access to names outside the function as does the enclosing function. Declarations in a local class shall not odr-use (3.2) a variable with automatic storage duration from an enclosing scope.

计数的最大区别在于您的本地课程只能在函数内部访问.

但之后:

>类的一个朋友是一个函数或类,它被赋予使用该类中的私有和受保护成员名的权限.>本地类位于封闭范围的范围内,并且具有与封闭函数相同的访问函数外的名称.也就是说,它可以访问该函数所属类的受保护和私有成员.

猜你在找的C&C++相关文章