Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #4528

Is it standard that inner class inherits the outer class' friendship?

From Qi <no@no.com>
Newsgroups comp.lang.c++
Subject Is it standard that inner class inherits the outer class' friendship?
Date 2011-04-30 18:06 +0800
Organization Aioe.org NNTP Server
Message-ID <ipgn1u$qf9$1@speranza.aioe.org> (permalink)

Show all headers | View raw


Below code, indeed I found here,
http://bytes.com/topic/c/answers/523273-inner-classes-friend
I changed it a bit to make it compilable and simpler.

The code can be compiled on both VC 2008 Express and GCC 4.5.2

That implies that
"An inner class can inherit its outer class' friendship".
My question is if that implication correct?

I doubt that because,
1, The link I showed above seems approved that's wrong.
Though that was posted in 2006.
2, As far as I understand, a derived class doesn't inherit
its base class' friendship. B is F's friend, D is derived from
B, D is not F's friend by default. (am I correct?)

Can any one give some summary on the friendship inheritance
of inner and outer classes, base and derived classes that defined
by the standard?

Thanks


===CODE===

class Node {
private:
     int value;

     friend class Graph;
};

class Graph {
private:
     class cmp {
     public:
         int operator()(const Node &l, const Node &r) {
             return (l.value - r.value); // without that friend, this
line can't compile
         }
     };
};


-- 
WQ

Back to comp.lang.c++ | Previous | Next | Find similar | Unroll thread


Thread

Is it standard that inner class inherits the outer class' friendship? Qi <no@no.com> - 2011-04-30 18:06 +0800

csiph-web