[問題] A *a 和 A *a = new A 的疑問

看板C_and_CPP (C/C++)作者 (Kimmy)時間13年前 (2012/08/18 00:02), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/2 (看更多)
class A() { public: void test(){printf("test");} }; int main() { A *a; A *aa = new A; a->test(); aa->test(); } 印出結果皆是test 想請問為什麼結果都是一樣 那這樣 A *a 和 A *aa = new A 又有什麼差別呢 我知道 A *aa = new A 後 aa會指向放著A物件的區塊 而A *a內容是undefine 那為什麼印出來的值卻是一樣的呢? 如果觀念有誤麻煩請指正... 感謝>_< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.155.100

08/18 00:05, , 1F
什麼編譯環境?
08/18 00:05, 1F

08/18 00:06, , 2F
Win7在codeblocks下編譯
08/18 00:06, 2F

08/18 00:09, , 3F
那…先給你一個會死掉的寫法 http://ideone.com/Pea4Q
08/18 00:09, 3F

08/18 00:12, , 4F
看這篇 L 大的一開始的說法, 這樣只是你this = NULL進去而已
08/18 00:12, 4F

08/18 00:12, , 5F
你沒動到this-> 基本上就一般function call..
08/18 00:12, 5F

08/18 00:12, , 6F
08/18 00:12, 6F

08/18 00:21, , 7F
我都貼完才發現上面那篇文章其實講得很清楚了...orz
08/18 00:21, 7F

08/18 00:25, , 8F
哈...我覺得你額外解釋我比較清楚耶XDDD
08/18 00:25, 8F
文章代碼(AID): #1GBciZk2 (C_and_CPP)
文章代碼(AID): #1GBciZk2 (C_and_CPP)