记录一个问题:使用初始化参数列表时,cout在构造函数中不能打印的情况。
1 #include <iostream> 2 using namespace std; 3 4 int g_a = 3; 5 6 class A{ 7 public: 8 A(int c):_c(c){ 9 g_a = 9; 10 cout << __FUNCTION__ << endl; 11 } 12 ~A(){ cout << __FUNCTION__ << endl;} 13 14 int _c; 15 }; 16 class B{ 17 public: 18 B(const A& a):_a(a){ // 因为初始化参数列表的使用 19 cout << __FUNCTION__ << endl; 20 } 21 ~B(){ cout << __FUNCTION__ << endl;} 22 23 A _a; 24 }; 25 26 int main(int argc, char *argv[]) 27 { 28 cout << g_a << endl; 29 A aa(5); 30 B b(aa); 31 cout << g_a << endl; 32 return 0; 33 }
运行结果: