[問題] class內部可以new東西嗎?

看板C_and_CPP (C/C++)作者 (唸書電動網拍)時間16年前 (2009/03/22 17:29), 編輯推噓3(303)
留言6則, 4人參與, 最新討論串1/2 (看更多)
如果想在class中new一個指標,  為什麼只能寫在function中,  不能寫在外面呢?  就是 class Test{ private: int *ptr = new int; <--這樣會錯誤 }; 可是  class Test{ private: int *ptr; public: void setPtr(){ ptr = new int; <--這樣卻可以 } }; 不懂為什麼 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.197.240

03/22 17:36, , 1F
只有靜態 const 整數資料成員可以在類別內初始化
03/22 17:36, 1F

03/22 17:56, , 2F
所以我得這樣寫 static const int *ptr = new int;囉?
03/22 17:56, 2F

03/22 18:02, , 3F
整數資料成員 ptr是指標 不在此列
03/22 18:02, 3F

03/22 18:02, , 4F
我覺得你可以說說堅持要這樣做的理由...
03/22 18:02, 4F

03/22 18:58, , 5F
new已經是實際執行code了,class內的描述不是拿來執行用的
03/22 18:58, 5F

03/22 19:56, , 6F
不是非要這樣做,只是想了解為什麼不能而已 ^^;
03/22 19:56, 6F
文章代碼(AID): #19nWKHPr (C_and_CPP)
文章代碼(AID): #19nWKHPr (C_and_CPP)