| Topic: |
DEVELOP > c-Plus-Plus |
| User: |
"freegnu" |
| Date: |
23 Oct 2006 02:36:12 AM |
| Object: |
how to declare a friend function that can access two class |
This is a multi-part message in MIME format.
------=_NextPart_000_0045_01C6F6B8.F8416B10
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<META content=3D"MSHTML 6.00.2900.2963" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>
<DIV class=3Daltbg2 id=3Dcode0=20
style=3D"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=20
face=3D=CB=CE=CC=E5>how to declare a friend function that can access two =
class</FONT></DIV>
<DIV class=3Daltbg2=20
style=3D"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=20
face=3D=CB=CE=CC=E5>it will look like the following</FONT></DIV>
<DIV class=3Daltbg2=20
style=3D"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=20
A<BR>{<BR> private:<BR> =
=20
int i;<BR> public:<BR> =20
A(){}<BR> =
~A(){}<BR> =
=20
friend void call(A &a, B=20
&b);<BR><BR>};<BR><BR>class A<BR>{<BR> private:<BR> =
int=20
j;<BR> public:<BR> =
=20
B();<BR> =20
~B()<BR> friend void =
call(A=20
&a, B &b);<BR>};<BR><BR>void call(A &a, B=20
&b)<BR>{<BR> cout << a.i << endl << b.j =
<<endl;<BR>}</DIV></FONT></DIV></BODY></HTML>
------=_NextPart_000_0045_01C6F6B8.F8416B10--
.
|
|
| User: "Frank-O" |
|
| Title: Re: how to declare a friend function that can access two class |
23 Oct 2006 03:19:44 AM |
|
|
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:
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;
}
------=3D_NextPart_000_0045_01C6F6B8.F8416B10
Content-Type: text/html; charset=3Dgb2312
Content-Transfer-Encoding: quoted-printable
X-Google-AttachSize: 2408
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<META content=3D"MSHTML 6.00.2900.2963" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>
<DIV class=3Daltbg2 id=3Dcode0
style=3D"CLEAR: both; BORDER-RIGHT: #698cc3 1px solid; PADDING-RIGHT: 10p=
x; 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=3D=CB=CE=CC=E5>how to declare a friend function that can access two =
class</FONT></DIV>
<DIV class=3Daltbg2
style=3D"CLEAR: both; BORDER-RIGHT: #698cc3 1px solid; PADDING-RIGHT: 10p=
x; 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=3D=CB=CE=CC=E5>it will look like the following</FONT></DIV>
<DIV class=3Daltbg2
style=3D"CLEAR: both; BORDER-RIGHT: #698cc3 1px solid; PADDING-RIGHT: 10p=
x; 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> private:<BR> =
int i;<BR> public:<BR>
A(){}<BR>
~A(){}<BR>
friend void call(A &a, B
&b);<BR><BR>};<BR><BR>class A<BR>{<BR> private:<BR>
int
j;<BR> public:<BR>
B();<BR>
~B()<BR> friend void =
call(A
&a, B &b);<BR>};<BR><BR>void call(A &a, B
&b)<BR>{<BR> cout << a.i << endl << b.j
<<endl;<BR>}</DIV></FONT></DIV></BODY></HTML>
=20
------=3D_NextPart_000_0045_01C6F6B8.F8416B10--
.
|
|
|
| User: "freegnu" |
|
| Title: Re: how to declare a friend function that can access two class |
23 Oct 2006 04:28:36 AM |
|
|
thanks for your reply
"Frank-O" <franck.nasse.oxinus@gmail.com>
??????:1161591584.280824.121840@f16g2000cwb.googlegroups.com...
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:
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> private:<BR>
int i;<BR> public:<BR>
A(){}<BR>
~A(){}<BR>
friend void call(A &a, B
&b);<BR><BR>};<BR><BR>class A<BR>{<BR> private:<BR>
int
j;<BR> public:<BR>
B();<BR>
~B()<BR> friend void
call(A
&a, B &b);<BR>};<BR><BR>void call(A &a, B
&b)<BR>{<BR> cout << a.i << endl << b.j
<<endl;<BR>}</DIV></FONT></DIV></BODY></HTML>
------=_NextPart_000_0045_01C6F6B8.F8416B10--
.
|
|
|
|
|

|
Related Articles |
|
|