0
我有一個基類指針的映射,我需要將類函數應用於映射的數據。如何在地圖上的基類指針上應用函數?
我正在處理用戶將輸入的形狀,然後有機會操作它們(平移,旋轉...)。我有功能女巫的工作,操縱形狀和形狀存儲在地圖中。
我正在努力如何訪問和操作映射的形狀。
我有以下代碼;
polygon * T;
map<string, polygon*> shape_map;
new_shape = Trans + user_input; // adds Tranaslated to the key
cout << "ID " << new_shape << " = " << endl; // ouput the key witch also id's the shape
T = shape_map[user_input]->translate(matrix(Xtrans, Ytrans));
T->printshape();
當我運行我的代碼的程序停止之前它應該打印的形狀,當我調試它強調了我的翻譯功能的線,但我相信我的翻譯功能是罰款,我已經測試它之前。
我認爲問題在於我如何調用函數,但我不確定。
任何幫助將是偉大的!
我看不到你在地圖上放置了new_shape的位置。我假設你期望shape_map [user_input]返回new_shape。 –
是的。我想避免將新的已轉換形狀添加到shape_map,因爲我想向用戶顯示它,然後詢問他們是否想要存儲該形狀。 – Peter
translate函數返回它所作用的類型(形狀的類型是來自抽象基類的多邊形的派生類)。 – Peter