作者skyconquer (梅郭曲)
看板C_and_CPP
標題[問題] class-type變數名稱
時間Mon Jan 5 22:33:40 2015
開發平台(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
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