全局函数做友元函数
class Building
{
friend void goodGay ( Building * buliding) ;
友元类
class Building ;
class GoodGay
{
public :
GoodGay ( ) ;
void visit ( ) ;
Building * m_building;
} ;
class Building
{
friend class GoodGay ;
. . .
} ;
成员函数
class Building ;
class GoodGay
{
public :
GoodGay ( ) ;
void visit ( ) ;
void visit2 ( ) ;
Building * m_building;
} ;
class Building
{
friend void GoodGay :: visit ( ) ;
. . .
} ;
完整代码
# define _CRT_SECURE_NO_WARNINGS
# include <iostream>
using namespace std;
# include <string>
class Building
{
friend void goodGay ( Building * buliding) ;
public :
Building ( )
{
this -> m_SittingRoom = "客厅" ;
this -> m_BedRoom = "卧室" ;
}
public :
string m_SittingRoom;
private :
string m_BedRoom;
} ;
void goodGay ( Building * building)
{
cout << "好基友正在访问:" << building-> m_SittingRoom << endl;
cout << "好基友正在访问:" << building-> m_BedRoom << endl;
}
void test01 ( )
{
Building building;
goodGay ( & building) ;
}
int main ( ) {
test01 ( ) ;
system ( "pause" ) ;
return EXIT_SUCCESS;
}
# define _CRT_SECURE_NO_WARNINGS
# include <iostream>
using namespace std;
# include <string>
class Building ;
class GoodGay
{
public :
GoodGay ( ) ;
void visit ( ) ;
Building * m_building;
} ;
class Building
{
friend class GoodGay ;
public :
Building ( ) ;
string m_SittingRoom;
private :
string m_BedRoom;
} ;
Building :: Building ( )
{
this -> m_SittingRoom = "客厅" ;
this -> m_BedRoom = "卧室" ;
}
GoodGay :: GoodGay ( )
{
this -> m_building = new Building;
}
void GoodGay :: visit ( )
{
cout << "好基友正在访问: " << this -> m_building-> m_SittingRoom << endl;
cout << "好基友正在访问: " << this -> m_building-> m_BedRoom << endl;
}
void test01 ( )
{
GoodGay gg;
gg. visit ( ) ;
}
int main ( ) {
test01 ( ) ;
system ( "pause" ) ;
return EXIT_SUCCESS;
}
# define _CRT_SECURE_NO_WARNINGS
# include <iostream>
using namespace std;
# include <string>
class Building ;
class GoodGay
{
public :
GoodGay ( ) ;
void visit ( ) ;
void visit2 ( ) ;
Building * m_building;
} ;
class Building
{
friend void GoodGay :: visit ( ) ;
public :
Building ( ) ;
string m_SittingRoom;
private :
string m_BedRoom;
} ;
Building :: Building ( )
{
this -> m_SittingRoom = "客厅" ;
this -> m_BedRoom = "客厅" ;
}
GoodGay :: GoodGay ( )
{
this -> m_building = new Building;
}
void GoodGay :: visit ( )
{
cout << "好基友正在访问: " << this -> m_building-> m_SittingRoom << endl;
cout << "好基友正在访问: " << this -> m_building-> m_BedRoom << endl;
}
void GoodGay :: visit2 ( )
{
cout << "好基友正在访问: " << this -> m_building-> m_SittingRoom << endl;
}
void test01 ( )
{
GoodGay gg;
gg. visit ( ) ;
gg. visit2 ( ) ;
}
int main ( ) {
test01 ( ) ;
system ( "pause" ) ;
return EXIT_SUCCESS;
}