原住民族考試四等考試-電子工程類科計算機概要105 年第 30 題單選題
在下列的 C++程式中,class A 不能稱為 class B 的何者?
#include <iostream>
#include <string>
using namespace std;
class A
{
};
class B:A
{
};
int main()
{
}
Abase class
Bparent class
Csuperclass
Dderived class正確答案
D正確答案
B 繼承 A,A 是 B 的父類別/基底類別/超類別,而非衍生類別。
為什麼答案是 D
derived class(衍生類別)是「繼承他人」的那一方,即 B 本身。A 被 B 繼承,不可能是 B 的 derived class,故為答案。
載入中…
完整詳解
Pro · 無限重點 B 繼承 A,A 是 B 的父類別/基底類別/超類別,而非衍生類別。
看語法 class B:A → B 繼承 A,所以 A 在上、B 在下。衍生類別(derived)是 B,不是 A。
逐選項分析
A✕
base class(基底類別)是被繼承的那一方,也就是 A。此稱呼正確,不是題目要選的答案。
B✕
parent class(父類別)是 base class 的同義詞,指被繼承者,即 A。稱呼正確。
C✕
superclass(超類別)同樣是被繼承者的別稱,源自 Java/OO 術語,指 A。稱呼正確。
D✓ 正確
derived class(衍生類別)是「繼承他人」的那一方,即 B 本身。A 被 B 繼承,不可能是 B 的 derived class,故為答案。
繼承關係術語對照 (class B : A)
| 角色 | A (被繼承) | B (繼承者) | 備註 |
|---|
| base class | ✓ | ✗ | C++ 常用 |
| parent class | ✓ | ✗ | 口語用法 |
| superclass | ✓ | ✗ | Java 常用 |
| derived class | ✗ | ✓ | C++ 常用 |
| child class | ✗ | ✓ | 口語用法 |
| subclass | ✗ | ✓ | Java 常用 |
容易被 class B:A 語法順序搞混。冒號左邊 B 是「繼承他人」的衍生類別,右邊 A 才是被繼承的基底類別。問「A 不能是 B 的何者」,就是在問 A 在繼承關係中的反面角色。