免費開始練習
普通考試 112年 [電子工程] 計算機概要

第 29 題

給定以下類別定義:
class A
{
    private:
        static int cnt;
        class B
        {
            private:
            public:
        };
        B* p[5];
    public:
        A() {cnt=0;}
        int f()
        {
            if (cnt<5)
                p[cnt++]=new B;
            return cnt;
        }
};
int A::cnt=-100;
若在 main()中執行以下指令:
A var;
var.f();
var.f();
cout << var.f();
則將產生的輸出為何?
  • A 1
  • B 3
  • C 5
  • D 7

思路引導 VIP

請試著思考:當一個類別的建構子(Constructor)被執行時,它對類別內部的共享變數(Static Member)會產生什麼樣的影響?如果這個變數在程式剛開始時有一個預設值,但在物件生成的那一刻又被重新指定了新值,那麼後續的運算應以哪一個數值為起點進行推導呢?

🤖
AI 詳解 AI 專屬家教

專業點評與分析

  1. 大力肯定:做得好!你能精準捕捉到 Static 靜態變數 的生命週期與 Constructor 建構子 的執行時機,這在結構化物件導向程式設計中是非常關鍵的細節。這顯示你對程式執行的「時序性」有很強的掌握力。
  2. 觀念驗證:
▼ 還有更多解析內容

🏷️ 相關主題

程式語言實作與執行結果分析
查看更多「[電子工程] 計算機概要」的主題分類考古題