標準C++ 03語法重載操作如下:理解C++ 03標準語法爲運算符重載
操作員功能-ID:
操作者操作者
操作操作 < 模板參數列表?>
第一個是我們通常使用的普通運算符重載語法,例如
Myclass operator + (Myclass s) {...}
但是第二個選擇是什麼意思?特別是在什麼情況下,我們使用模板參數列表?快速瀏覽C++ 11後,我發現第二種形式已從標準中刪除。它的初衷是什麼?
編輯:用VC++ 2010的測試後,下面是一個使用上述語法的一種方式,儘管它沒有多大意義,對我說:
class K {
public:
int a;
template <int B>
int operator + (int b) {
return a+b+B;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
K k;
k.a=1;
int s;
s=k.operator+<115>(2);
printf("%d\n",s);
return 0;
}
output:118
什麼是「模板運營商」? – JavaMan
您可以爲班級重載操作員。那些重載可以是模板函數。 – StoryTeller
@StoryTeller但顯式的特化不能在類範圍內。 –