我有一些對應於某些數據類型的類,它們應該對實際數據進行編碼和解碼。例如,將具有用於編碼整數值並且從編碼字節流對其進行解碼的功能。 所有這些類都來自基類MyTypes
。在解碼時,在從編碼的 字符串獲取值之後,我將該值放入相應的數據類型中,例如int
(在MyInt
的情況下),並將數據作爲void *
返回。使用運行時類型標識從void指針獲取數據
在 接收端,我將指針指向(int *)
,然後將其解引用到結果中。
但現在我需要一個具有數組的類型。在數組的情況下,我正在使用模板來說明數組將要持有的數組是 。也就是說,
template<typename T>
class MyArray:public MyType
{
vector<T *> mydata;
....
};
在解碼功能,我會調用類型T的譯碼,但現在它只是返回void*
。我的陣列將不知道 解碼類型將是什麼。所以我不能改寫void *
並將其解引用以獲得價值。也就是說, 如果我採取的MyInt
MyArray<MyInt> data;
陣列「data
」的數組不會知道它的解碼結果將是一個vector<int>
。並且最好將數據傳遞爲vector<int>
而不是vector<int*>
我該如何實現它?