C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

how to declare a friend function that can access two class

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ language (comp.lang.c++)
View previous topic :: View next topic  
Author Message
freegnu
Guest





PostPosted: Mon Oct 23, 2006 9:11 am    Post subject: how to declare a friend function that can access two class Reply with quote



how to declare a friend function that can access two class
it will look like the following
class A
{
private:
int i;
public:
A(){}
~A(){}
friend void call(A &a, B &b);

};

class A
{
private:
int j;
public:
B();
~B()
friend void call(A &a, B &b);
};

void call(A &a, B &b)
{
cout << a.i << endl << b.j <<endl;
}
Back to top
Frank-O
Guest





PostPosted: Mon Oct 23, 2006 9:11 am    Post subject: Re: how to declare a friend function that can access two cla Reply with quote



A friend function can be a member of another class :
class A;

class B
{
private :
int j;
public :
B(int j_):j(j_){}

void call(A&);
};


class A
{
private :
int i;
public :
A(int i_):i(i_){}
friend void B::call(A &a);
};


void B::call(A &a)
{

cout << a.i << j << endl;
}

or

class A;

class B
{
private :
int j;
public :
B(int j_):j(j_){}

friend void call(A&,B&b);
};


class A
{
private :
int i;
public :
A(int i_):i(i_){}
friend void call(A &a,B &b);
};


void call(A &a,B &b)
{

cout << a.i << b.j << endl;
}

freegnu wrote:
Quote:
how to declare a friend function that can access two class
it will look like the following
class A
{
private:
int i;
public:
A(){}
~A(){}
friend void call(A &a, B &b);

};

class A
{
private:
int j;
public:
B();
~B()
friend void call(A &a, B &b);
};

void call(A &a, B &b)
{
cout << a.i << endl << b.j <<endl;
}
------=_NextPart_000_0045_01C6F6B8.F8416B10
Content-Type: text/html; charset=gb2312
Content-Transfer-Encoding: quoted-printable
X-Google-AttachSize: 2408

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
HTML><HEAD
META http-equiv=Content-Type content="text/html; charset=gb2312"
META content="MSHTML 6.00.2900.2963" name=GENERATOR
STYLE></STYLE
/HEAD
BODY bgColor=#ffffff
DIV><FONT size=2
DIV class=altbg2 id=code0
style="CLEAR: both; BORDER-RIGHT: #698cc3 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #698cc3 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 3px 2em 2em; BORDER-LEFT: #698cc3 1px solid; WORD-BREAK: break-all; PADDING-TOP: 5px; BORDER-BOTTOM: #698cc3 1px solid; FONT-FAMILY: fixedsys"><FONT
face=ËÎÌå>how to declare a friend function that can access two class</FONT></DIV
DIV class=altbg2
style="CLEAR: both; BORDER-RIGHT: #698cc3 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #698cc3 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 3px 2em 2em; BORDER-LEFT: #698cc3 1px solid; WORD-BREAK: break-all; PADDING-TOP: 5px; BORDER-BOTTOM: #698cc3 1px solid; FONT-FAMILY: fixedsys"><FONT
face=ËÎÌå>it will look like the following</FONT></DIV
DIV class=altbg2
style="CLEAR: both; BORDER-RIGHT: #698cc3 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #698cc3 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 3px 2em 2em; BORDER-LEFT: #698cc3 1px solid; WORD-BREAK: break-all; PADDING-TOP: 5px; BORDER-BOTTOM: #698cc3 1px solid; FONT-FAMILY: fixedsys">class
A<BR>{<BR>&nbsp;&nbsp;private:<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;int i;<BR>&nbsp;&nbsp;public:<BR>&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;A(){}<BR>&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;~A(){}<BR>&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; friend void call(A &a, B
&b);<BR><BR>};<BR><BR>class A<BR>{<BR>&nbsp;&nbsp;private:<BR>&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;int
j;<BR>&nbsp;&nbsp;public:<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;
&nbsp; B();<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;
~B()<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; friend void call(A
&a, B &b);<BR>};<BR><BR>void call(A &a, B
&b)<BR>{<BR>&nbsp;&nbsp;cout << a.i << endl << b.j
<<endl;<BR>}</DIV></FONT></DIV></BODY></HTML

------=_NextPart_000_0045_01C6F6B8.F8416B10--
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ language (comp.lang.c++) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.