一道跟静态成员有关的面试题
2007-08-01 22:30
267 查看
今天有人问我一道面试题
class Class1
...{
public static int i = GetNum();
private static int num=1;
public static int GetNum()
...{
return num;
}
public int j = GetNum();
}
Console.WriteLine(Class1.i);的结果为0
Console.WriteLine(new Class1().j);的结果为1
class Class1
...{
private static int num=1;
public static int i = GetNum();
public static int GetNum()
...{
return num;
}
public int j = GetNum();
}
Console.WriteLine(Class1.i);的结果为1
Console.WriteLine(new Class1().j);的结果为1
从msdn上查到“静态成员在第一次被访问之前并且在任何静态构造函数(如调用的话)之前初始化”,但没说明初始化顺序,根据调试分析,得出结论静态变量是从上到下进行初始化的。
class Class1
...{
public static int i = GetNum();
private static int num=1;
public static int GetNum()
...{
return num;
}
public int j = GetNum();
}
Console.WriteLine(Class1.i);的结果为0
Console.WriteLine(new Class1().j);的结果为1
class Class1
...{
private static int num=1;
public static int i = GetNum();
public static int GetNum()
...{
return num;
}
public int j = GetNum();
}
Console.WriteLine(Class1.i);的结果为1
Console.WriteLine(new Class1().j);的结果为1
从msdn上查到“静态成员在第一次被访问之前并且在任何静态构造函数(如调用的话)之前初始化”,但没说明初始化顺序,根据调试分析,得出结论静态变量是从上到下进行初始化的。
相关文章推荐
- 有关类的静态成员初始化
- 有关运算符优先级的一道面试题
- C++ 与“类”有关的注意事项总结(四):静态类成员 和 静态成员函数
- (转)c++类的成员函数存储方式(是否属于类的对象)---一道面试题引发的思考
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 另一道与fork()有关的面试题
- 一道有关setTimeout的面试题
- 一道有关飞机绕赤道飞行的面试题
- 一道失手率极高的成员内部类面试题
- 一道java面试题-方法静态分派
- 一道jAvA静态的面试题想到的
- 一道面试题引发的有关随机数的思考(2)
- 一道面试题引发的有关随机数的思考(8)
- 一道有关子网划分的面试题?
- 一道面试题引发的有关随机数的思考(1)
- C++类大小确定,构造、析构、静态、动态绑定(分析一道Oracle面试题)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 黑马程序员_有关构造方法的一道面试题
- 与全局变量构造析构顺序有关的一道面试题(C++)