• Add a Comment
  • Edit
  • More Actions v
  • Quarantine this Entry

Comments (6)

1 momognu commented Permalink

哈,不错!

2 袁野24 commented Permalink

使用gcc可以直接编译通过,是编译器的优化所致么?

3 becky.ban commented Permalink

学习了

4 Zhipeng.Liu commented Permalink

to 袁野24: <br /> 这不是优化所致的. 应该你在link的时候X.o 和 Y.o 的顺序的原因 <div>&nbsp;</div> 在link这步, X.o Y.o的不同顺序影响了初始化顺序: <br /> 1. g++/xlC -o exe X.o Y.o <br /> ./exe <br /> Segmentation fault <div>&nbsp;</div> 2. g++/xlC -o exe X.o Y.o <br /> ./exe <br /> CObjet::STRINGX [001] <br /> STRINGY [001] <div>&nbsp;</div> xlC提供了-qpriority来指定我们期望的初始化顺序, 另外xlC还提供了#pragma priority (value) 来更精细的控制各个对象的初始化顺序

5 fwzling commented Permalink

关于在头文件里加 using namespace 好像一般不推荐,具体原因忘了。看看卤煮能不能点解。

6 IBMCPL commented Permalink

主要是防止命名空间污染。 如果我在头文件using namespace std, 意味着namespace std里面的所有声明(比如cout, cin等) 对所有include该头文件的源代码都是默认可见的。如果头文件里面隐蔽的定义了一些声明,而这个声明恰好用户的源代码里面也定义了,就会导致冲突。

Add a Comment Add a Comment