标签: initialization

如何在C++中初始化私有静态成员?

在C++中初始化私有静态数据成员的最佳方法是什么?我在头文件中尝试了这个,但它给了我奇怪的链接器错误:

class foo
{
    private:
        static int i;
};

int foo::i = 0;
Run Code Online (Sandbox Code Playgroud)

我猜这是因为我无法从课外初始化私人成员.那么最好的方法是什么?

c++ initialization static-members

492
推荐指数
11
解决办法
47万
查看次数

如何根据C编程语言标准初始化结构

我想初始化一个struct元素,在声明和初始化中拆分.这就是我所拥有的:

typedef struct MY_TYPE {
  bool flag;
  short int value;
  double stuff;
} MY_TYPE;

void function(void) {
  MY_TYPE a;
  ...
  a = { true, 15, 0.123 }
}
Run Code Online (Sandbox Code Playgroud)

这是MY_TYPE根据C编程语言标准(C89,C90,C99,C11等)声明和初始化局部变量的方法吗?或者有什么更好或至少工作?

更新我最终得到一个静态初始化元素,我根据自己的需要设置每个子元素.

c struct initialization

435
推荐指数
10
解决办法
73万
查看次数

如何在Java中初始化数组?

我正在初始化这样的数组数据:

public class Array {

    int data[] = new int[10]; 
    /** Creates a new instance of Array */
    public Array() {
        data[10] = {10,20,30,40,50,60,71,80,90,91};
    }     
}
Run Code Online (Sandbox Code Playgroud)

NetBeans指向该行的错误

data[10] = {10,20,30,40,50,60,71,80,90,91};
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

java arrays initialization

407
推荐指数
6
解决办法
142万
查看次数

为什么列表初始化(使用花括号)比替代品更好?

MyClass a1 {a};     // clearer and less error-prone than the other three
MyClass a2 = {a};
MyClass a3 = a;
MyClass a4(a);
Run Code Online (Sandbox Code Playgroud)

为什么?

我在SO上找不到答案,所以让我回答一下我自己的问题.

c++ syntax initialization c++11 list-initialization

349
推荐指数
5
解决办法
13万
查看次数

在循环之前或循环中声明变量之间的区别?

我一直想知道,一般来说,在循环之前声明一个抛弃变量,而不是在循环内部重复,是否会产生任何(性能)​​差异?Java中的一个(毫无意义的)示例:

a)循环前的声明:

double intermediateResult;
for(int i=0; i < 1000; i++){
    intermediateResult = i;
    System.out.println(intermediateResult);
}
Run Code Online (Sandbox Code Playgroud)

b)声明(重复)内循环:

for(int i=0; i < 1000; i++){
    double intermediateResult = i;
    System.out.println(intermediateResult);
}
Run Code Online (Sandbox Code Playgroud)

哪一个更好,一个还是b

我怀疑重复变量声明(例子b)在理论上会产生更多的开销,但是编译器足够聪明,所以它并不重要.实施例b具有更紧凑的优点,并且将变量的范围限制在其使用的位置.尽管如此,我倾向于根据示例来编码一个.

编辑:我对Java案件特别感兴趣.

java variables performance loops initialization

307
推荐指数
14
解决办法
13万
查看次数

如何在C#中初始化一个空数组?

是否可以在不指定大小的情况下创建空数组?

例如,我创建了:

String[] a = new String[5];
Run Code Online (Sandbox Code Playgroud)

我们可以创建没有大小的上面的字符串数组吗?

c# arrays initialization

299
推荐指数
8
解决办法
49万
查看次数

在PHP中初始化(空)数组的最佳方法

在某些其他语言(例如AS3)中,已经注意到如果像这样做var foo = []而不是var foo = new Array()出于对象创建和实例化的原因,初始化新数组会更快.我想知道PHP中是否有任何等价?

class Foo {
    private $arr = array(); // is there another / better way?
}
Run Code Online (Sandbox Code Playgroud)

php arrays initialization

282
推荐指数
7
解决办法
54万
查看次数

280
推荐指数
8
解决办法
8万
查看次数

ArrayList初始化等效于数组初始化

我知道您可以在实例化期间初始化数组,如下所示:

String[] names = new String[] {"Ryan", "Julie", "Bob"};
Run Code Online (Sandbox Code Playgroud)

有没有办法用ArrayList做同样的事情?或者我必须单独添加内容array.add()吗?

java arrays initialization arraylist

258
推荐指数
7
解决办法
20万
查看次数

静态初始化块

据我所知,"静态初始化块"用于设置静态字段的值,如果不能在一行中完成的话.

但我不明白为什么我们需要一个特殊的块.例如,我们将一个字段声明为静态(没有值赋值).然后编写几行代码,生成并为上面声明的静态字段赋值.

为什么我们需要在一个特殊的块这样的行这样的:static {...}

java static initialization static-block initialization-block

252
推荐指数
8
解决办法
19万
查看次数