1. /* 
  2. C++是很危险的:第一章 构造函数:第三节 构造函数与初始化列表 
  3.  
  4. 《C++是很危险的》中的代码全部来自网络及各种C++相关的书籍。 
  5. 目的不是为了谴责C++,而是希望大家注意C++中的某些细节。 
  6. 这些细节在实际工程中根本用不到,所以大家就当笑话看看就好。 
  7.  
  8. 以下代码会输出几次“Hello world!”? 
  9.  
  10. 操作系统:ubuntu linux 10.10 
  11. 编译器:g++ 4.4.5 
  12.  
  13. 1、没有编译错误,能够正常运行。 
  14. 2、答案是“Hello world!”被输出了3次。 
  15. */ 
  16.  
  17. #include <iostream> 
  18. using namespace std; 
  19. class Object 
  20. public
  21.     Object(int a=0) 
  22.     { 
  23.         cout<<"Hello world!"<<endl; 
  24.     } 
  25. }; 
  26.  
  27. class CA 
  28. public
  29.     CA() 
  30.         :o(1) 
  31.     { 
  32.     } 
  33. private
  34.     Object o; 
  35. }; 
  36.  
  37. class CB 
  38. public
  39.     CB() 
  40.     { 
  41.         o=1; 
  42.     } 
  43. private
  44.     Object o; 
  45. }; 
  46.  
  47. int main() 
  48.     CA ca; 
  49.     CB cb; 
  50.     return 0;