標題可能是誤導,但我真的不知道如何命名它。C++獲取動態泛型類型的指針?
讓我們說,我有以下結構
template <typename T>
struct SillyBase{
void doFunnyStuff(vector<T> vec){
dummyField = T();
for(int i=0; i<10; i++)
vec.push_back(dummyField++);
}
T dummyField;
};
struct A : public SillyBase<char>{};
struct B : public SillyBase<float>{};
現在讓我們進一步假設我有一個指針
ISillyBase* ptr;
其中指向器的新生代類的對象(A或B)SillyBase的 - 但是,我不知道哪一個(我只知道它是A或B);
有沒有辦法讓我打電話給doFunnyStuff()?
也許是這樣的:
vector<dynamic_generic_type_of(ptr)> vec;
ptr->doFunnyStuff(vec);
的感謝!
由於關於如何調用'ptr'方法的問題是基於有缺陷的前提,因此可以根本不需要聲明'ptr',因此投票結束爲*不再相關*。 – 2010-01-08 00:05:22
手頭有什麼更大的問題? – GManNickG 2010-01-08 00:11:30
你希望傳入什麼類型的矢量?你想收集什麼樣的價值?你會期望在向量中存儲char和float嗎?所以你會將它們轉換爲一種類型......可能有一個簡單的解決方案來解決你的問題,但我們不知道你想解決的問題是什麼 – stefanB 2010-01-08 00:16:01