統測
113年
[電機與電子群資電類] 專業科目(2)
第 45 題
📖 題組:
閱讀下文,回答第 45-46 題
下列程式片段為計算管道內水流量的全域類別,其中 ToatlFlow()為計算流量值的成員函式。
閱讀下文,回答第 45-46 題
下列程式片段為計算管道內水流量的全域類別,其中 ToatlFlow()為計算流量值的成員函式。
1 enum Item{_FlowRate, _Time };
2 class Volume {
3 private:
4 double FlowRate, Time;
5 static double Offset;
6 public:
7 Volume (){ FlowRate =0.0, Time = 0.0;}
8 Volume (double In1, double In2)
9 { FlowRate = In1; Time = In2; }
10 void SetOffset(double offs) { Offset = offs; }
11 double GetParameter(Item item)
12 { return (item == _Time) ? Time : FlowRate ;}
13 void SetPara(double FR,double T)
14 { FlowRate =FR; Time = T;}
15 protected:
16 double ToatlFlow(){return FlowRate*Time;}
17 } T1(1.0,2.3), T2;
18 double Volume :: Offset = 0.0;
若要在main主程式內使用T1或T2物件來編寫程式,下列程式敘述何者正確?
- A double Value 1 = T1 -> GetParameter (_Time);
- B T1 -> SetPara (100.5,50);
- C T2.FlowRate = 12.4;
- D T2.SetOffset (-3.2);
思路引導 VIP
請同學檢視 $Volume$ 類別中的存取權限標籤($private$ 與 $public$),思考外部函式如 $main$ 是否能直接讀寫私有成員?此外,觀察第 17 行 $T1$ 與 $T2$ 的宣告方式,判斷當我們對「物件實體」進行操作時,應該選用「點運算子 $.$」還是針對指標使用的「箭號運算子 $->$」呢?
🤖
AI 詳解
AI 專屬家教
🌟 太棒了!精準答對!
恭喜你!這題考驗的是 C++ 類別物件的基本操作與封裝 (Encapsulation) 觀念,你能避開語法陷阱,代表基礎非常紮實!
🔍 觀念驗證:為什麼 (D) 是對的?
▼ 還有更多解析內容
C++類別存取控制
💡 掌握成員存取權限(修飾子)與物件存取語法的正確組合。
| 比較維度 | 公有成員 (public) | VS | 私有成員 (private) |
|---|---|---|---|
| 類別外部存取 | 可直接存取或調用 | — | 禁止存取,會編譯錯誤 |
| 類別內部存取 | 可自由存取 | — | 可自由存取 |
| 設計用途 | 提供外部操作的介面 | — | 封裝與保護內部資料 |
💬外部程式僅能存取 public 成員,這是物件導向中「封裝」的核心精神。