|
|
1
4
首先,总是问自己是否真的需要一个全球性的,通常你不会。但是如果你真的需要一个全球性的… 实现这一点的最佳方法是在一些敏感命名的类上拥有一个静态属性,它有效地成为全局变量。
编辑: 这里的一些人说了一个笼统的说法,即全局变量是不好的,我同意这种观点,而且似乎C的设计者也同意,因为他们根本不可用。 不过,我们应该看看全局变量不好的原因,它们大多被认为是坏的,因为您违反了封装规则。不过,静态数据并不一定是坏的,静态数据的好处在于可以封装它,上面的例子是一个非常简单的例子,在现实场景中,您可能会将静态数据包含在同一类中,该类与凭证进行其他工作,可能是登录类或用户类,或者其他任何类型的你的应用程序。 |
|
|
2
5
这不是一个好的实践,但是如果你真的需要它,有很多方法:
|
|
3
1
我想你应该使用 Singleton Pattern . 如果您要使用多线程应用程序,那么还需要确保对singleton实例的属性的访问是线程安全的。 和往常一样,请仔细考虑在应用程序中引入任何类型的全局性,但不要害怕使用它。很多东西确实是全球性的,比如应用程序。比如设置,没有任何“坏”的地方。 这个 article on MSDN 解释如何在C_中正确创建单例。 |
|
|
4
0
在C中,获得类似于全局变量的行为的方法之一是使用静态类方法和类变量。静态类方法和变量在C语言中只有一个实例,并且在某种程度上类似于其他语言中的全局变量。 也就是说,对于您的问题,它听起来更像是一个设计问题。C非常关注面向对象的设计;我怀疑您给出的问题是,更好的OOD可以解决您的问题。 |
|
|
5
0
函数A是类的一部分(称为C)。然后,函数A可以存储登录凭据并提供一个函数(或在C_中,一个属性)来获取凭据。当需要它们时,您可以简单地使用属性来获取存储的凭证并将它们传递到函数B(在不同的类上)。
|
|
|
glor · 如何在报价单中的r中使用全局变量 8 年前 |
|
|
Mabadai · 将一个int数组复制到另一个C++ 8 年前 |
|
infinite · 即使没有声明也在使用全局定义 8 年前 |
|
|
Rakesh · 全局变量值不反映在函数之间 8 年前 |
|
|
oneMoreDeveloper · Javascript全局数组声明 8 年前 |
|
|
Klayd Pro · 在c中使用本地指针调用并返回函数 8 年前 |
|
|
Rob Matthews · 为模拟信用卡应用程序颁发简单的唯一ID 8 年前 |