standart C++ 03 dilbilgisi Aşırı yükleme için C++ 03 Standart Dilbilgisi:anlama Operatör şöyle bir operatörüdür aşırı için
operatör fonksiyonlu kimliği:
operatöroperatör
operatöroperatör < şablon argüman listesi?>
Birincisi, normalde kullandığımız sıradan operatör aşırı yüklenme sözdizimi, örn.
Myclass operator + (Myclass s) {...}
Ancak ikinci seçenek ne anlama geliyor? Özellikle, şablon argümanı-listesi? C++ 11'e hızlı bir bakıştan sonra, ikinci formun standarttan kaldırıldığını buldum. Orijinal niyet neydi?
DÜZENLEME: bana çok mantıklı değil, ancak aşağıda yukarıdaki sözdizimi kullanarak bir yoludur VC++ 2010 ile test ettikten sonra:
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
"operatörleri şablonlu" sen? – JavaMan
Sınıfınız için operatörleri aşırı yükleyebilirsiniz. Ve bu aşırı yükler şablon fonksiyonları olabilir. – StoryTeller
@StoryTeller ancak açık uzmanlıklar sınıf kapsamında olamaz. –