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

看板C_and_CPP作者 (Noah)時間11年前 (2013/07/22 10:48), 編輯推噓1(106)
留言7則, 4人參與, 最新討論串2/3 (看更多)
※ 引述《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,即B1 : if (true) ※條件本身就設定為true,所以一定會進去 : { : cout << '2'; ※印出2,即B12 : P p2; ※建構隨即解構,印出BD,即B12BD : } : cout << '3'; ※印出3,即B12BD3 : return 0; : } : 上述C++程式的結果為 : B12BD3D : 請問為什麼? : if (true)中,是哪個變數為true? 不好意思,小弟也是自學中的新人,若解釋有誤或太粗淺也請多包含。 抑或用推文即可這邊也會再刪文,謝謝。 另外最後一個D應該是 p 解構時所印出, 但小弟實際跑該程式並無印出,求指導,謝謝QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.171.117.232

07/22 11:02, , 1F
g++4.7.2,有印最後一個D,你的環境是?
07/22 11:02, 1F

07/22 11:03, , 3F
vc2012也有@@"
07/22 11:03, 3F

07/22 11:11, , 4F
Visual C++ 2008,我剛才是有在return前加system("PAUSE")
07/22 11:11, 4F

07/22 11:11, , 5F
在解構前停住所以沒出來XD 之後把該行去掉,用啟動但不偵
07/22 11:11, 5F

07/22 11:12, , 6F
錯就看到了,謝謝 :D
07/22 11:12, 6F

07/23 08:26, , 7F
將這程式轉換製成執行檔,用命令提示字元去執行該執行檔,
07/23 08:26, 7F
文章代碼(AID): #1Hx9rddc (C_and_CPP)
文章代碼(AID): #1Hx9rddc (C_and_CPP)