Questions tagged «static»

静态是一些编程语言中使用的术语,用于定义未绑定到任何特定对象实例的函数或数据存储区域(字段)。在大多数情况下,如果使用此标签,则应与特定的编程语言标签结合使用。

21
如果私有帮助器方法可以是静态的,则它们应该是静态的
假设我有一个要实例化的类。我在类中有几个私有的“帮助器”方法,它们不需要访问任何类成员,而仅对它们的参数进行操作,并返回结果。 public class Example { private Something member; public double compute() { double total = 0; total += computeOne(member); total += computeMore(member); return total; } private double computeOne(Something arg) { ... } private double computeMore(Something arg) {... } } 有没有指定任何特别的原因computeOne,并computeMore为静态方法-或任何特别的理由不? 将它们设置为非静态无疑是最容易的,即使它们可以肯定是静态的而不会引起任何问题。


9
static关键字及其在C ++中的各种用法
关键字static是一个在C ++中具有多种含义的关键字,我感到非常困惑,而且我永远也不会对它的实际工作方式bend之以鼻。 据我了解,存在static存储持续时间,这意味着在全局情况下,它会持续到程序的整个生命周期,但是当您谈论本地时,它意味着默认情况下将其初始化为零。 C ++标准对具有关键字的类数据成员说static: 3.7.1静态存储持续时间[basic.stc.static] 3关键字static可用于声明具有静态存储持续时间的局部变量。 4在类定义中应用于类数据成员的关键字static提供了数据成员静态存储的持续时间。 局部变量是什么意思?那是函数局部变量吗?因为还存在这样的情况,当您声明局部函数时,因为该函数static仅初始化一次,因此它首次进入此函数。 它也只讨论关于类成员的存储时间,那是非实例特定的,那又是一个static否定的属性?还是存储期限? 现在static,文件范围和情况如何?默认情况下,是否所有全局变量都被认为具有静态存储持续时间?以下内容(来自3.7.1节)似乎表明了这一点: 1所有没有动态存储持续时间,没有线程存储持续时间以及非本地变量的变量都具有静态存储持续时间。这些实体的存储应在程序的整个过程中持续(3.6.2、3.6.3) 如何static涉及变量的联动? 整个static关键字令人困惑,有人可以用英语阐明它的不同用法,还能告诉我何时初始化static类成员吗?
195 c++  static 

2
函数中的静态constexpr变量有意义吗?
如果我在函数中有一个变量(例如,一个大数组),则将其声明为static和constexpr是否有意义?constexpr保证数组是在编译时创建的,那static会没用吗? void f() { static constexpr int x [] = { // a few thousand elements }; // do something with the array } static根据生成的代码或语义,实际上在做什么?
192 c++  static  c++11  constexpr 

5
静态类实例对于ASP.NET中的请求或服务器是否唯一?
在ASP.NET网站上,静态类是每个Web请求唯一的,还是在需要时实例化它们,并在GC决定处置它们时将它们GC化? 我问的原因是因为我之前在C#中编写了一些静态类,并且行为与我预期的不同。我希望静态类对于每个请求都是唯一的,但是事实并非如此。 如果它们不是每个请求唯一的,是否有办法允许它们存在? 更新: 德里斯给我的答案正是我所需要的。我已经在使用一个singleton类,但是它使用的是静态实例,因此即使用户不同,也可以在请求之间共享它,在这种情况下,这是一件坏事。使用HttpContext.Current.Items完美解决了我的问题。对于以后偶然遇到此问题的任何人,以下是我的实现(简化和缩短),以便于理解该模式: using System.Collections; using System.Web; public class GloballyAccessibleClass { private GloballyAccessibleClass() { } public static GloballyAccessibleClass Instance { get { IDictionary items = HttpContext.Current.Items; if(!items.Contains("TheInstance")) { items["TheInstance"] = new GloballyAccessibleClass(); } return items["TheInstance"] as GloballyAccessibleClass; } } }
182 c#  asp.net  static 


1
C ++中的静态构造函数?我需要初始化私有静态对象
我想要一个带有私有静态数据成员(包含所有字符az的向量)的类。在Java或C#中,我可以创建一个“静态构造函数”,该构造函数将在创建该类的任何实例之前运行,并设置该类的静态数据成员。它只运行一次(因为变量是只读的,只需要设置一次),并且由于它是类的函数,因此可以访问其私有成员。我可以在构造函数中添加代码,以检查向量是否已初始化,如果尚未初始化,则将其初始化,但这会引入许多必要的检查,而且似乎不是解决问题的最佳方法。 我想到,由于变量将是只读的,因此它们只能是公共静态const,因此我可以在类外设置它们一次,但是再一次,这看起来像是一个丑陋的hack。 如果我不想在实例构造函数中初始化私有静态数据成员,是否可以在类中拥有私有静态数据成员?

3
从常规ES6类方法调用静态方法
调用静态方法的标准方法是什么?我可以考虑使用constructor或使用类本身的名称,我不喜欢后者,因为它没有必要。是前一种推荐的方法,还是还有其他方法? 这是一个(人为的)示例: class SomeObject { constructor(n){ this.n = n; } static print(n){ console.log(n); } printN(){ this.constructor.print(this.n); } }



4
仅检索Java类中声明的静态字段
我有以下课程: public class Test { public static int a = 0; public int b = 1; } 是否可以使用反射仅获取静态字段的列表?我知道我可以使用来获得所有字段的数组Test.class.getDeclaredFields()。但是似乎无法确定Field实例是否代表静态字段。
163 java  reflection  static  field 

9
C ++中的堆栈,静态和堆
我已经搜索过,但是我对这三个概念不太了解。什么时候必须使用动态分配(在堆中),它的真正优势是什么?静态和堆栈有什么问题?我可以编写整个应用程序而不在堆中分配变量吗? 我听说其他语言结合了“垃圾收集器”,因此您不必担心内存。垃圾收集器做什么? 如果使用此垃圾收集器无法完成操作,那么您可以自己处理内存吗? 有人对我说了这个声明: int * asafe=new int; 我有一个“指向指针的指针”。这是什么意思?它的不同之处在于: asafe=new int; ?

4
成员函数中的静态变量
有人可以解释一下成员函数中的静态变量如何在C ++中工作。 给定以下类别: class A { void foo() { static int i; i++; } } 如果我声明了多个实例 A,则foo()在一个实例上调用是否会i在所有实例上增加静态变量?还是只有一个被调用? 我假设每个实例都有自己的副本 i,但是逐步执行某些代码似乎并非如此。
158 c++  static  scope 

19
Java中私有静态变量的用途是什么?
如果将变量声明为public static varName;,则可以从任意位置访问它ClassName.varName。我还知道,静态成员由类的所有实例共享,并且不在每个实例中重新分配。 声明变量与声明变量有private static varName;什么不同private varName;吗? 在这两种情况下,都不能以任何其他类ClassName.varName或ClassInstance.varName任何其他类的形式对其进行访问。 将变量声明为静态变量是否赋予它其他特殊属性?

7
最终静态和静态最终之间的区别
我发现了一个代码,它声明了如下代码 private final static String API_RTN_SUCCESS = "0"; private final static String API_RTN_ERROR = "1"; public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config"; public static final String STARTUP_SETTING_KEY = "startup_setting"; 它们之间有什么区别或相同?还是与private或不同public?
151 java  static  final 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.