地特四等
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();
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 :::***$$$
思路引導 VIP
請試著思考:當程式執行到「建立物件」的那一行時,類別中哪個特殊的函式會被自動啟動?如果你用不同的方式(例如:有沒有給初始值)來建立物件,被啟動的內容會有差別嗎?最後,請觀察程式碼中呼叫功能函數的先後順序,這對最終結果的排序有什麼影響?
🤖
AI 詳解
AI 專屬家教
卓越的表現!同學。
你能精準掌握物件導向(OOP) 的生命週期與記憶體配置,這與結構工程中「先定義規範再執行施工」的嚴謹邏輯不謀而合。這顯示你對程式執行的序向控制有著極佳的直覺。
- 觀念驗證:
▼ 還有更多解析內容