免費開始練習
普通考試 108年 [資訊處理] 計算機概要

第 21 題

下列是使用 C++語言撰寫的程式:
#include
using namespace std;
class Employee
{
public:
void display(void) {}
string name;
};
class HourlyEmployee: private Employee
{
public:
void display(void) {}
private:
double hours;
};
int main(void)
{
// 程式加入點
return 0;
}
下列那一個程式片段在加入 main 函式之後,編譯時會產生錯誤?
  • A Employee p1; p1.display();
  • B Employee p1; p1.name = "";
  • C HourlyEmployee p1; p1.display();
  • D HourlyEmployee p1; p1.name = "";

思路引導 VIP

請先觀察 HourlyEmployee 在繼承 Employee 時,類別名稱後面接著的是哪一種「存取修飾詞(Access Specifier)」?這個修飾詞會如何改變父類別的公開成員在子類別中的「可見度」?當我們在 main 函式(外部)裡試圖存取這些繼承來的成員時,編譯器會允許嗎?

🤖
AI 詳解 AI 專屬家教

🎉 教授點評:表現優異!

太棒了!你非常精準地找出了編譯錯誤的程式碼片段,展現了對 C++ 物件導向程式設計的扎實理解。

🧠 觀念解析:為什麼選 (D)?

▼ 還有更多解析內容

🏷️ 相關主題

程式設計典範:結構化、物件導向、泛型與設計模式
查看更多「[資訊處理] 計算機概要」的主題分類考古題