農會 資訊管理類程式設計107 年第 8 題單選題
在C++語言中,namespace命名空間可解決下列何者問題?
A多型動態繫結
B繼承,使程式再利用
C宣告物件時設定初值
D函式或類別名稱衝突正確答案
D正確答案
C++的namespace(名稱空間)主要用來避免大型專案中,不同開發者定義的函式或類別名稱發生衝突。
為什麼答案是 D
名稱空間(namespace)將識別字(如變數、函式、類別)封裝在獨立範圍內,有效解決名稱衝突問題。
考點:多型與繫結考點:繼承特性考點:建構子考點:名稱空間
載入中…
完整詳解
Pro · 無限重點 C++的namespace(名稱空間)主要用來避免大型專案中,不同開發者定義的函式或類別名稱發生衝突。
看到namespace(名稱空間)直接聯想「名字衝突」,它專門用來隔離不同模組的識別字,避免同名打架。
逐選項分析
A多型與繫結✕
多型與動態繫結是透過虛擬函式(virtual function)與指標或參考來實現,與名稱空間無關。
B繼承特性✕
繼承是物件導向的核心特性,用於程式碼再利用與建立IS-A關係,並非名稱空間的功能。
C建構子✕
宣告物件時設定初值是透過建構子(Constructor)來完成,負責初始化成員變數,與名稱空間無關。
D名稱空間✓ 正確
名稱空間(namespace)將識別字(如變數、函式、類別)封裝在獨立範圍內,有效解決名稱衝突問題。
C++ 核心概念與對應機制對照表
| 程式設計問題 | C++ 對應解決機制 | 關鍵字 |
|---|
| 名稱衝突 (Name Collision) | namespace (名稱空間) | using, :: |
| 多型與動態繫結 | virtual function (虛擬函式) | virtual, override |
| 程式碼再利用 | Inheritance (繼承) | public, protected |
| 物件初始化 | Constructor (建構子) | 與類別同名函式 |
考生容易將C++的各種進階特性與名稱空間混淆。請記住namespace純粹是為了名稱管理與避免衝突而生的語法結構,不具備物件導向特性。