我有什麼:
我使用的指針每個結構不同的自定義結構(每個矢量一個自定義的結構)的 載體給它每記錄一個靜態的大小
是通過指針每
當我嘗試將指針轉換爲它在每個迭代上
我的解決方法失敗自定義矢量組合這些向量的向量是對函數的調用了一個向量指針作爲參數和返回一個void指針。
我知道這是錯誤的,儘管功能,但我找不到正確的方式來定義正確的投射方法的參考。如何的方法從子類用C添加到超++
我正在尋找正確的方法來完成此操作。
typedef struct mystruct { DWORD something; vectorclassa * somethinga; vectorclassb * somethingb; }; typedef std::vector<mystruct*> amystruct; void * theWrongWay(mystruct * apointer){ return apointer; } typedef std::vector bigvector;
如果我嘗試bigvector.push_back(& instance_of_amystruct)
它失敗。如果我將std::vector<amystruct*> bigvector
更改爲void *並將其稱爲「錯誤路由」,則會編譯/運行。這似乎是錯誤的。
問題是我不知道如何定義向量的缺失方法或將其轉換爲某個向量知道如何處理而不做某事......不好。
顯示一些代碼。 – 2012-03-23 23:03:56
代碼併發布你想要做的事情的緊湊,重點最少的演示。 – Robinson 2012-03-23 23:09:15
你可以使用'void *'在容器中保存不同的類型,但這是使用它的最糟糕的方式。在安全方法中,boost :: any是最通用的方法。最好的方法取決於你打算如何處理這些容器。 – enobayram 2012-03-23 23:17:06