Click here to Skip to main content
12,822,050 members (41,830 online)
Rate this:
Please Sign up or sign in to vote.
See more: C++
Hi All,

In one of the famous book called Thinking in C++, in one of the example Bruce Eckel made nested class as friend like,

class upper
int i;

class nested;// forward declaration  

friend nested;

class nested
uppder obj;
void SomeFunction()
cout<< obj.i; 


I used above code without using friend to nested class and worked correctly. So what should be the conclusion, does nested class should be declared as friend for accessing private data of outer class or it can directly access it without friend keyword.
Posted 30-Mar-12 19:48pm

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

A nice question in this section after long time.

Pranit, Bruce Eckel gave this statement as it is true based on the 1998 C++ draft. Now if you are using any compiler say MSVC 6.0 then you will get error if you haven't made your nested class friend class.

However a latter draft corrected this and stated that
"A nested class is a member and as such has the same access rights as any other member",
so if you use any compiler shipped with this modification then the use of 'friend' is no longer needed
Pranit Kothari 31-Mar-12 2:57am
Thanks for your nice words and answer. 5!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web01 | 2.8.170308.1 | Last Updated 31 Mar 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100