友元
#include<iostream>
using namespace std;
class Building
{
//全局函数是Building的好朋友才可以访问Building私有成员
friend void gaybuilding(Building* b);
public:
Building()
{
settingroom = "客厅";
beddingroom = "卧室";
}
public:
string settingroom;
private:
string beddingroom;
};
//全局函数
void gaybuilding(Building *b)
{
cout << "正在访问基友的" << b->settingroom << endl;
cout << "正在访问基友的" << b->beddingroom << endl;
}
void test()
{
Building b;
gaybuilding(& b);
}
int main()
{
test();
system("pause");
return 0;
}
#include<iostream>
using namespace std;
//类做友元
class Building
{
friend class Gay;
public:
Building();
public:
string settingroom;
private:
string beddingroom;
};
class Gay
{
public:
Gay();
void visit(); //参观函数,访问Building的属性
Building* b; //Building类建立在前面可以这样写
};
//类外写成员函数
Building::Building()
{
settingroom = "客厅";
beddingroom = "卧室";
}
Gay::Gay()
{
//创建建筑物对象
b = new Building;
}
void Gay::visit()
{
cout << "正在访问基友的" << b->settingroom << endl;
cout << "正在访问基友的" << b->beddingroom << endl;
}
void test()
{
Gay g;
g.visit();
}
int main()
{
test();
system("pause");
return 0;
}
#include<iostream>
using namespace std;
class Building;
class Gay
{
public:
Gay();
void visit1(); //让visit1函数可以访问building中私有成员
void visit2(); //让visit2函数不可以访问building中私有成员
Building *b;
};
// 类实现成员函数
class Building
{ //告诉编辑器 Gay类下的visit成员函数作为本类的好朋友,可以访问私有成员
friend void Gay::visit1();
public:
Building();
string settingroom;
private:
string bedroom;
};
Building::Building()
{
settingroom = "客厅";
bedroom = "卧室";
}
Gay::Gay()
{
b = new Building;
}
void Gay::visit1()
{
cout <<"visit1访问客厅" <<b->settingroom << endl;
cout << "visit1访问卧室" << b->bedroom << endl;
}
void Gay::visit2()
{
cout << "visit2访问客厅" << b->settingroom << endl;
}
void test()
{
Gay g;
g.visit1();
g.visit2();
}
int main()
{
test();
system("pause");
return 0;
}
评论列表 (0 条评论)