[問題] class-type變數名稱

看板C_and_CPP作者 (梅郭曲)時間11年前 (2015/01/05 22:33), 11年前編輯推噓0(0010)
留言10則, 4人參與, 最新討論串1/1
開發平台(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

01/05 22:36, , 1F
Base()::Base(string s):Name(s){}//obj = New Base("N")
01/05 22:36, 1F

01/05 22:38, , 2F
抱歉..原來你要的是把 變數名 當 字串 存入.. Orz
01/05 22:38, 2F
沒關係 還是謝謝E大

01/05 23:21, , 3F
macro
01/05 23:21, 3F

01/05 23:24, , 4F
a大的方法很好,只是我的main()中的code無法更改,一定要照文中方式宣告,還是 謝謝a大。

01/06 00:33, , 5F
RTTI有提供typeid([your type])
01/06 00:33, 5F

01/06 00:36, , 6F
但是有兩點要住意的 : 1. RTTI能不碰就不碰(真的)
01/06 00:36, 6F

01/06 00:36, , 7F
2. 他得到的名字其實不只class name,會混雜其他東西
01/06 00:36, 7F

01/06 00:37, , 8F
而他輸出的pattern可能跟你預期的不太一樣
01/06 00:37, 8F
感謝K大!!我馬上試試!!

01/06 02:45, , 10F
珍惜生命, 遠離 RTTI
01/06 02:45, 10F
※ 編輯: skyconquer (140.112.39.70), 01/06/2015 10:31:47
文章代碼(AID): #1Kgg362J (C_and_CPP)