Bu gibi iç içe geçmiş bir sınıf için bir operatöre < < nasıl yüklenebilir?Aşırı yük işletmecisi << iç içe geçmiş bir özel sınıf için mümkün mü?
class outer {
private:
class nested {
friend ostream& operator<<(ostream& os, const nested& a);
};
// ...
};
dış sınıf derleyici dışında çalışırken gizliliği hakkında yakınır:
error: ‘class outer::nested’ is private
ve inci e yazdırma fonksiyonu 'const' üye işlevi olmalıdır. Eğer std :: ostream & print (std :: ostream & out) const 'ise, 'operator <<' sadece bir satır olabilir: 'return obj.print (dest);'. – Nawaz
Neden std: ostream'in Inner'ın bir arkadaşı olması gerekir? – Mordachai
Çünkü bunu 'Inner' içinde tanımlayamazsınız. (Ve eğer 'Inner' içinde tanımlanmamışsa, 'Inner' öğesine erişememesi sorunu var, çünkü 'Inner', 'Outer' özel bir üyesidir.) –