Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Strange Friends

Status
Not open for further replies.

SantoshNarayan

Technical User
Jun 6, 2001
13
IN
A friend function means a non-member routine which has access to the
private and protected members of a class. Friend is a keyword used within
a class definition to let the class know that this routine can access
its private or protected members which are not accessible from anywhere
outside the class.

Friend functions are other "normal" routines of any program and have
their code defined like other such routines.

But this code illustrates how friends can have their code defined within
a class type.

HOW IS THIS POSSIBLE ? INFACT WHAT DOES IT MEAN ?

I wrote this code when I was trying to find a solution to my
previous query posted at this forum titled "Passing generic class objects
to non-member routines ? How to ?". That problem got solved implicitly
through this only to give me a new problem.

#include <iostream>

using namespace std;

template <typename mytype> class myclass
{
mytype val;
public :
myclass(mytype i){ val = i; }
mytype func(){ return val; }
friend void outfunc(myclass <mytype> &obj)
{
cout << obj.func() << endl;
}
};

int main()
{
myclass ext(11);
cout << ext.func() << endl;

outfunc(ext);

return 0;
}
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top