Türetilmiş bir sınıf, bir Sınıf Tabanı'ndan özel olarak miras alınırsa ve Türetilmiş sınıf bir arkadaş işlevine f() sahipse, üyeler, Türetilmiş sınıf ve Temel sınıftan f() erişimlerini sağlayabilirler.Özel devralma ile türetilmiş sınıftaki arkadaş işlevi
class Base {
public:
int a;
protected:
int b;
private:
int c;
};
class Derived: private Base {
void friend f() {}
public:
int d;
protected:
int e;
private:
int f;
};
Bir sınıf temel sınıftan özel olarak miras ise, her şey türetilmiş sınıfta özel olduğunu anlıyoruz.
Ancak yukarıdaki kodda neden f() işlevi a, b, d, e, f işlevlerine erişebilir, ancak c değil?
+1. –
Bu örnekte benzerlik şöyle olacaktır: 'Evime arkadaşlarıma erişim izni vermem, babamın kendimi açamayacağımı garanti etmesine izin vermez' –
@dribeas: Evet - sizin benzetiğiniz C++ davranışına daha yakındır. –