如何访问已被声明为static和类定义保护在另一个文件b.cpp在另一个文件中使用受保护的静态变量
0
A
回答
2
允许使用protected
类的唯一代码使用一个变量成员(静态或不)是问题类的明确朋友和类从类中派生的问题(当然,类本身的成员)。因此,如果“你”想访问该值,那么“你”必须是该类的朋友或从它派生的类的成员。
存在保护等级(public
,protected
和private
)以提供数据保护。通过声明成员为protected
,那类作家正在大约应该被允许触摸到了一块内存什么码半强烈的声明。如果你不是一个派生类或已获准使用明确的friend
规范,那么你不能碰它。
你不应该从一个类派生只是为了获得访问protected
静态成员。你应该只从派生类派生,如果它是有道理的,根据你的派生类正在尝试做什么。
0
在宣布为受保护,静态变量只能用在它的成员函数访问和它的派生类(公共,保护继承)。
0
0
我曾经在一个我无法修改的课程中遇到了这个问题(标准适配器),并在Google的帮助下提出了以下解决方案!
#include <iostream>
class my_type{
protected:
static int var;
};
int my_type::var = 0;
int& get_var(my_type& obj){
class protected_accessor : my_type{
public:
static int& get_var(my_type&){
return my_type::var;
}
};
return protected_accessor::get_var(obj);
}
int main(){
my_type obj;
std::cout << get_var(obj) << std::endl;
get_var(obj) = 1;
std::cout << get_var(obj);
}
我在我的小工具中使用了此代码的变体:https://bitbucket.org/AraK/streamer/wiki/Developer_FAQ。寻找“流媒体标准适配器”。
相关问题
- 1. 如何使用受保护的/私有静态变量?
- 2. PHP:引用静态变量中的另一个静态变量
- 3. 如何在Kohana中设置受保护的静态文件3.1
- 4. 在另一个文件中的PHP静态变量?
- 5. 无法访问受保护的静态变量PHP 7.0.13
- 6. 使用ReflectionClass的受保护的变量
- 7. Python中另一个文件中的静态变量
- 8. 试图访问另一个静态变量的静态变量
- 9. 如何在php中使用受保护的静态?
- 10. 在Hadoop集群中使用另一个类的静态变量
- 11. ASP.NET - 受保护的变量
- 12. 如何保护静态函数/变量
- 13. 在另一个文件中使用另一个类的变量
- 14. 从受保护的子区访问变量到另一个受保护的子区(asp.net)
- 15. 获取从受保护的方法变量值另一类
- 16. 用烧瓶保护静态文件
- 17. Fortran中受保护的全局变量
- 18. 访问受保护的变量在googletest
- 19. 如何在javascript中使用受保护的变量?
- 20. 实现文件中的实例变量 - 私有与受保护
- 21. 如何使用护照快递保护静态文件夹
- 22. ASP.NET维护静态变量
- 23. QThread:如何使用受保护的静态函数
- 24. ActionScript:在受保护/私有变量中使用'in'?
- 25. htaccess的保护要求每一个静态文件
- 26. 在PHP类中声明受保护的变量,使用外部变量
- 27. 在C99中使用静态变量初始化静态变量
- 28. 在java中添加一个静态变量和一个非静态变量
- 29. 我想用在与受保护的静态OOP
- 30. 在python中打开一个受保护的pdf文件