看板 C_and_CPP 關於我們 聯絡資訊
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
james732:什麼編譯環境? 08/18 00:05
kimmyariel:Win7在codeblocks下編譯 08/18 00:06
james732:那…先給你一個會死掉的寫法 http://ideone.com/Pea4Q 08/18 00:09
QQ29:看這篇 L 大的一開始的說法, 這樣只是你this = NULL進去而已 08/18 00:12
QQ29:你沒動到this-> 基本上就一般function call.. 08/18 00:12
QQ29:#1BScJFGz 08/18 00:12
james732:我都貼完才發現上面那篇文章其實講得很清楚了...orz 08/18 00:21
kimmyariel:哈...我覺得你額外解釋我比較清楚耶XDDD 08/18 00:25