給定以下類別定義: 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:::***$$$
答案與詳解
正確順序:new A 觸發無參建構子印「:::」→ A v(1) 觸發 A(int) 印「***」→ v.f() 與 p->f() 各印一次「$$$$$。
