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

第 29 題

給定以下類別定義:
```cpp
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()中執行以下指令:
```cpp
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. 觀念驗證
▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計:語法、指標與應用
查看更多「[電子工程] 計算機概要」的主題分類考古題