看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 想請教各位先進一個問題: 我想要在創建一個class BASE之後, class BASE{ private: std::string Name; } 在main()主程式中宣告一BASE-type的pointer,如下: BASE* obj1 = new BASE; 我希望這個pointer名稱obj1可以順便初始化 Name 這個data member, 這樣我可以利用一個member function把這個"obj1"作為一string印出來, 但不知該如何下手.....我是有想過要用construtor,在初始化時就將變數名稱 存進Name中,但不知道該如何做....... 請有辦法的大大不吝賜教,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.155.174.109 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1420468422.A.093.html ※ 編輯: skyconquer (124.155.174.109), 01/05/2015 22:36:32
EdisonX: Base()::Base(string s):Name(s){}//obj = New Base("N") 01/05 22:36
EdisonX: 抱歉..原來你要的是把 變數名 當 字串 存入.. Orz 01/05 22:38
沒關係 還是謝謝E大
azureblaze: macro 01/05 23:21
azureblaze: http://ideone.com/OFeEm3 01/05 23:24
a大的方法很好,只是我的main()中的code無法更改,一定要照文中方式宣告,還是 謝謝a大。
Killercat: RTTI有提供typeid([your type]) 01/06 00:33
Killercat: 但是有兩點要住意的 : 1. RTTI能不碰就不碰(真的) 01/06 00:36
Killercat: 2. 他得到的名字其實不只class name,會混雜其他東西 01/06 00:36
Killercat: 而他輸出的pattern可能跟你預期的不太一樣 01/06 00:37
感謝K大!!我馬上試試!!
uranusjr: 珍惜生命, 遠離 RTTI 01/06 02:45
※ 編輯: skyconquer (140.112.39.70), 01/06/2015 10:31:47