40 class A
{

    friend class B;

    private:

           static int data;

   public:

         A(){data++;}

};

class B 

{

    public:

          void f(A var){

                         A.data+=1;

                         cnt << A.data;

                         }

          };

int A::data=1;

針對以上類別定義,且在 main()中執行以下指令,則將產生的輸出為何?

A v1, v2, v3;

B v4; v4.f(v1);
(A)2
(B)3
(C)4
(D)5

答案:登入後查看
統計: A(24), B(46), C(84), D(62), E(0) #3481613

詳解 (共 2 筆)

#6711337
題目解析 這道題目提供了兩個類別 A ...
(共 1038 字,隱藏中)
前往觀看
10
5
#7311826
  1. static 變數不屬於任何特定的物件,而是由該類別的所有物件共同擁有。無論產生多少個 A 物件,記憶體中只有一個 data
  2. 執行 main()
    • 初始: data = 1

    • 執行 A v1, v2, v3;

      • 產生物件 v1, v2, v3,因此建構子 A() 會被呼叫 3 次
      • data 從初始值 1,每次呼叫都會 data ++ ; 此時 data = 4
    • 執行 B v4; v4.f(v1);
      • 函式內執行 A.data += 1;
      • data 變化:4 + 1 = 5
0
0

私人筆記 (共 1 筆)

私人筆記#7821177
未解鎖
答案:(D) 5解析:A v1, v2,...
(共 193 字,隱藏中)
前往觀看
6
0