ebeveyn sınıfın özel üyeleri erişebilir ve ben (sorunsuz derler: http://ideone.com/hRiV5B): Bu pasajı içinde beni şaşırttı şey fark bir süre memberspace deyim ile etrafında oynuyordumMemberspaces Ben <a href="http://accu.org/index.php/journals/1527">this article</a> okuyordum
class HugeClass
{
public:
struct memberspace
{
int f() const { return parent.f; }
private:
friend HugeClass;
explicit memberspace(HugeClass & parent)
: parent(parent) {}
HugeClass & parent;
} memberspace;
HugeClass() : memberspace(*this), f(42) {}
private:
int f;
};
Bu bağlamda HugeClass::f
erişiminin f
özel olduğu için bir derleyici hatası oluşmasına izin verilmez.
HugeClass
yüzden HugeClass
memberspace
özel yapıcısı çağırabilir, memberspace
bir friend
, ama neden açıkça memberspace
HugeClass
bir friend
bildirmek olmadan tersi çalışır?
memberspace HugeClass'ın bir parçası olarak kabul edilir ve bu nedenle tam erişime sahiptir. –