普通考試
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 函式之後,編譯時會產生錯誤?
#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)?
▼ 還有更多解析內容