2
我有一個類C++模板特
template <typename T>
class C
{
static const int K=1;
static ostream& print(ostream& os, const T& t) { return os << t;}
};
我想專門下INT。
//specialization for int
template <>
C<int>{
static const int K=2;
}
我想要保留int的默認打印方法,只是改變常量。 對於某些專業,我想保留K = 1並更改打印方法,因爲 不是< <運算符。
我該怎麼做?
如果一切都在被多次包括頭文件?這不會導致鏈接器中出現多重定義錯誤嗎? – user231536 2010-06-14 17:31:40
@ user231536:你可以在頭文件中聲明'template <> const int C :: K;'以清楚地說明這種情況下有一個專門化, 然後把'... = 2; '.cpp文件中只有一個值的定義。 –
sth
2010-06-14 20:48:16