我有下面的類:C++店相同的類具有不同的模板陣列
template <typename T>
class A
{
public:
void method(const char *buffer);
// the template T is used inside this method for a local variable
};
現在我需要這個類中包含不同的模板實例組成的數組:
std::vector<A*> array;
array.push_back(new A<uint32_t>);
array.push_back(new A<int32_t>);
但std::vector<A*> array;
不會工作,因爲我顯然需要指定一個模板,但我不能這樣做,因爲我在這個數組中存儲不同的類型。是否有某種通用類型或其他解決方案?
你能只是一個成員函數模板,而不是整個類? –
你可以讓所有'A's繼承自一個基地,雖然這往往是不好的。 – Pubby
除了Martinho所說的,'A'不是一種類型,它是一個類模板。所以你不能像'std :: vector '那樣將它用作模板參數。 – mfontanini