地方政府公務人員四等-電子工程類科計算機概要113 年第 31 題單選題考點:漏算建構子考點:建構子+成員函式
給定以下類別定義:
class A
{
public:
f() { cout << "$$$"; }
A() { cout << ":::" ; }
A(int a) { cout << "***" ; }
private:
};
若在 main()中執行以下指令,則將產生的輸出為何?
A *p=new A;
A v(1);
v.f();
p->f();
A$$$$$$
B:::***$$$$$$正確答案
C***$$$
D:::***$$$
B正確答案
new A 呼叫無參數建構子印「:::」,A v(1) 呼叫有參數建構子印「***」,兩次 f() 各印一次「$$$」,合計「:::***$$$$$$」。
逐選項解析
A$$$$$$漏算建構子✕ 易錯陷阱
只計算兩次 f() 的輸出「$$$$$$」,卻忽略 new A 與 A v(1) 兩個物件建構時會自動呼叫建構子,漏掉「:::」與「***」。
B:::***$$$$$$建構子+成員函式✓ 正確
正解。順序為:new A → A() 印「:::」;A v(1) → A(int) 印「***」;v.f() 印「$$$」;p->f() 印「$$$」。串接為「:::***$$$$$$」。
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本