typeinfo

    1熱度

    4回答

    我正在從java移動到cpp,並且我對理解cpp功能如何工作有點問題。當我們使用多態或類型安全的轉換時,cpp需要知道對象的確切類型。在java中,每個對象都有一個指向其定義類的鏈接,因此可以檢索到這些信息。但在cpp中並非如此(我認爲),我在說因爲sizeof()運算符返回的不超過對象字段佔用的內容,因此我猜測這不是存儲類型信息的地方。 我錯了嗎?如果沒有,那麼cpp如何管理多態性和東西?

    0熱度

    2回答

    我有一個type_info對象,它定義了我的屬性映射中的屬性類型。我想用我的type_info對象定義的類型運行一些代碼(例如從cin讀取值)。這可能是一些模板功能,即: template<typename T> void do_something() { T a; cin >> a; } 然後在代碼的其它部分,我想叫它: const type_info &type_descr

    0熱度

    3回答

    所以即時通過我的ResourceManager類與使用C++的遊戲進行一點問題。 所以我試圖使我的常規addImage功能的模板功能,所以它會增加聲音,但我有一些我不能真正處理的錯誤可以幫助我嗎? :d .HPP #ifndef RESOURCE_MANAGER_HPP #define RESOURCE_MANAGER_HPP #include "Image.cpp" #include "

    5熱度

    1回答

    這裏是問題: 我有一個默認隱藏符號的共享庫。實際上,它使用-Xlinker --version-script =選項來導出特定文件中的某些符號,但隱藏其餘所有符號。問題是,如果我們試圖捕獲在其他共享庫中定義的異常,我們會遇到問題,因爲typeinfo被此共享庫隱藏。我無法明確地使異常類可見,因爲它們是在我無法控制的開源庫中定義的。我也不想在版本腳本符號文件中顯式列出異常類的typeinfo,因爲有

    1熱度

    2回答

    綜觀C++ RTTI和type_info類有時我找到一種方法的描述稱爲raw_name(),用於返回一個類的demangled名稱。我無法在g ++中找到任何實現,只能使用方法name()。你知道這是否只是針對Visual Studio/MS的實現,以及是否是C++標準的一部分?

    0熱度

    2回答

    有沒有辦法檢查超類的type_info是什麼? 在我的系統中,對象由一組位標識。哪一個由type_info哈希碼標識。我希望其中的一些類型能夠啓用多態,因爲我的系統認爲它們處於相同位置。 type_info爲每個類類型創建一個唯一的哈希碼。相反,我想派生類取位設置其超類的,像這樣: Component > ISomeInterfaceComponent -> bit = 00001

    8熱度

    2回答

    是否可以編寫一個函數isFunc :: a -> Bool確定的任意值是否是一個函數(任何種類的),使得 foo :: Int -> Int bar :: Char -> Char -> Char > isFunc foo True > isFunc bar True > isFunc 3 False > isFunc 'a' False 我使用Data.Dynamic所

    0熱度

    1回答

    我有一個自定義控件'可'有ListCollectionView作爲ItemsSource傳遞,我需要子類型的反射用法。 現在我能找到的類型fromthe第一個元素: Type t = lcv.GetItemAt(0).GetType(); 但是那就沒辦法了,當集合是空的。 它也可以通過調用AddNew() Object o = lcv.AddNew() Type t = o.GetType(

    12熱度

    1回答

    可能重複: g++ undefined reference to typeinfo Undefined symbols 「vtable for …」 and 「typeinfo for…」? 我不能用我的課。 class Accel { public: virtual void initialize(void); virtual void measure(void);

    0熱度

    3回答

    類型考慮以下方法 static ComponentType & getTypeFor(const type_info &t){ ComponentType * type = componentTypes[t.hash_code()]; if(type == NULL) { type = new ComponentType(); co