[英]How can I specialize a template class member function?
考慮以下示例:
template <class T, class U>
class Test {
public:
void f(){std::cout<<"f() not specized"<<std::endl;}
void g(){std::cout<<"g() not specized"<<std::endl;}
void h(){std::cout<<"h() not specized"<<std::endl;}
//void g<long, double>(){}
};
在這里,我對注釋的代碼有誤。 我想達到預期結果的唯一方法是使全班同學都變得特別。 但是在下面提到的類中,我不能使用原始類的默認行為(例如f()和h()函數)。
template <>
class Test<long, double> {
public:
void f(){std::cout<<"f() specized long, double"<<std::endl;}
};
那么有沒有一種方法可以使原始類中的功能特別化?
當然,您可以使用以下定義進行操作 :
template<>
void Test<long, double>::f(){std::cout<<"f() specialized long, double"<<std::endl;}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.