Derse üye olunduğunda bir arkadaşınıza ne oluyor?Bir üye fonksiyonu fonksiyona bağlanma
Aşağıdaki kod derleniyor ve çalışıyor. Arkadaş beyanı olmadan 'operatör için çok fazla argüman' üretilir (ve haklı olarak). Bunu yapmanın hiçbir anlam ifade etmediğini, ancak bana burada neler olduğunu anlatabildiğini anlıyorum. Arkadaşım derleyiciyi bu parametreyi bir şekilde ihmal etmek için zorluyor mu?
bir sınıfın üyesi işlevini kendisi ile arkadaş olmak ne olurclass Test
{
public:
friend bool operator<(Test& lhs, Test& rhs)
{
return true;
}
};
int main(int c, char** argv)
{
Test test1;
Test test2;
return test1 < test2;
}
Sorunuzu cevaplamak için: Arkadaşlar C++ 03'teki arkadaşlık sınıfının üyesi olamaz, ancak C++ 0x'de buna izin verilir. –
Merak ediyorum, üye fonksiyonunun tamamen erişime sahip olduğu için arkadaşının kendisi olmasına izin vermek için mümkün olan nokta ne olabilir? – radman
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#77 adresine veya geçmişe bakın (özellikle bu durum çok da önemli değildir, çünkü iç içe geçmiş sınıflar C++ 0x ve çoğu C++ 03 derleyicilerinde yuvalama sınıfı. –