Re: [問題] 普考102年的一項考題

看板C_and_CPP作者 (Richard)時間11年前 (2013/07/22 13:25), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串3/3 (看更多)
http://codepad.org/gW7aZv5Q 這題最主要是考建構解構 ※ 引述《GoOnDino (Cyborg Ring)》之銘言: : 102年普考有個題目敘述如下的C++程式 : #include <iostream> : using namespace std; : class P : { : public: : P() { cout << 'B'; } : ~P() {cout << 'D'; } : }; : int main() : { : P p; 這時候建構,印出 "B" : cout << '1'; "1" : if (true) "true"只是代表會進去這個if而已,true,false是系統預設 : { : cout << '2'; "2" : P p2; 這時候又建構 "B" : } 離開這個if的scope,裡面的p2會解構,會印出D "D" : cout << '3'; "3" : return 0; : } 整個程式結束,p會解構,會印出D "D" : 上述C++程式的結果為 : B12BD3D : 請問為什麼? : if (true)中,是哪個變數為true? true是系統預設,keyword保留字,就像if,while,return c++ keywords http://en.cppreference.com/w/cpp/keyword -- 『想要我的財寶嗎?想要的話 自己去拿吧! 我把所有的寶藏都藏在Buddha了!』 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.78.23 ※ 編輯: flydragon198 來自: 118.171.78.23 (07/22 13:31)

07/22 15:53, , 1F
正解
07/22 15:53, 1F

07/23 08:29, , 2F
非常感謝
07/23 08:29, 2F

08/08 15:50, , 3F
08/08 15:50, 3F
文章代碼(AID): #1HxC90KY (C_and_CPP)
文章代碼(AID): #1HxC90KY (C_and_CPP)