的成員函數我是新來的C++和Im學習使用模板。 我想使模板類與2個模板參數,並且從類專門的單個成員函數,對於其中所述第二模板參數是模板上的指針類型的第一個參數的矢量的情況。我想的是我的嘗試會更加清楚的例子:C++專門爲載體
//Container.h:
template<class T , class CONT >
class Container {
private:
CONT container;
T someData;
public:
void foo();
};
,我嘗試了特化了的std ::向量是:
//Container.cpp
template<class T>
void Container<T, std::vector<T*> > ::foo(){
cout << "specialized foo: " << container.pop_back();
}
template<class T, class CONT >
void Container<T, CONT > ::foo(){
cout << "regular foo: " << container.pop_back());
}
,但我得到這些erors:
error C3860: template argument list following class template name must list parameters in the order used in template parameter list
error C2976: 'Container<T,CONT>' : too few template argument
Container類的使用必須是該第一參數是某種類型的,並且第二個是一個STL容器,載體或列表。例如:
Container<int, vector<int*> > c;
c.foo();
我是什麼東錯了?
除了語法錯誤,你不能專注函數模板部分,所以這種方法不工作。 –