cpp 代码
- #include<iostream></iostream>
- using namespace std;
- class A{
- int i;
- public:
- A(int i)
- {
- cout<<"construct A: "<<
由于自己对static对象保存在 静态数据区(data or bss)中,所以在昨天的笔试中想当然的认为都会初始化,但其实不是这样。 在静态数据区只是分配了空间而已,而对于一个类的构造是有空间与构造两个步骤的。 在一个函数中定义一个变量,是空间与构造同时进行。 而在静态数据区,如果你不去碰它。永远只是分配空间而已。 去IBM笔+面的收获:自己的底层知识远远不够。顶层概念也不清晰。平时有点自以为是了。老把自己当高手,纯粹扯淡。 如果一个题目abcd4个选项,别人能排除1个选项,而我水平高点能排除两个选项,根据倒霉蛋原理,最后还是都会选一个错的答案,有什么用,相反一些错误的思考会让自己做错一个什么都不懂的人凭直觉就能做对的题。所以真正的高手都是能排除3个选项的人。而我,还差得远呢。 static对象都是放在bss中的,不管代码中是否初始化。但估计对于有初始化语句的对象有额外的标志。以引导构造函数发生。