class A{friend class B; private: static int data; public: A(){data++;}}; class B{public: void f(A var){var.data+=1; cout << var.data;}}; int A::data=1; 針對以上類別定義,且在 main() 中執行以下指令,則將產生的輸出為何? A v1, v2, v3; B v4; v4.f(v1);
A2
B3
C4
D5正確答案
答案與詳解
正解。data 初始=1;v1,v2,v3三次建構各+1 → 4;v4.f(v1) 內 data+=1 → 5。friend 讓 B 能存取 A 的 private static。
