我真的很模糊。 如果我有一個模板類,我把它作爲一個參數傳遞給函數,考慮以下因素:模板功能和類
template <class T> class Class
{
};
所以我想打一個函數,類作爲參數,那麼爲什麼以下不會足夠:
void func(Class<T> obj)
{
}
,我必須做:
template <class T> void func(Class<T> obj)
{
}
也是,說我拿2個模板類的2個參數,考慮以下因素:
template <class T> class ClassA
{
};
template <class T> class ClassB
{
};
,我有一個函數,類型ClassA和ClassB的,就是寫作的區別的2個參數:
template <class T> void func(ClassA<T> obj1, ClassB<T> obj2)
{
}
到
template <class T, class ClassB> void func(ClassA<T> obj1, ClassB obj2)
{
}
,因爲這兩個作品。
'模板'中的'ClassB'只是一個名稱,並不是指您的實際'template class ClassB' –
2014-09-30 16:29:22
@PiotrS。這是什麼意思,這只是一個名字,思維解釋? – 2014-09-30 16:31:05
不要將模板視爲泛型(如在C#中)。它們更像是編譯器的替換指令:用指定的任何內容替換'T',比如'int'。 – 2014-09-30 16:49:02