服装高端网站建设,有没有做古装衣服的网站,河南省建设工程造价信息网站,专业网站优化公司排名朋友可访问自己的东西#xff0c;大概就这么个意思。即某类的友元类可访问该类的所有变量以及函数#xff0c;或友元函数可以访问该类的变量以及函数#xff0c;在朋友眼中没有任何隐藏#xff0c;可谓时赤裸相对#xff0c;肝胆相照#xff0c;生生挚友。
注意#xf… 朋友可访问自己的东西大概就这么个意思。即某类的友元类可访问该类的所有变量以及函数或友元函数可以访问该类的变量以及函数在朋友眼中没有任何隐藏可谓时赤裸相对肝胆相照生生挚友。
注意记得前置声明不然很容易报错说没有定义声明
友元函数 // 【3】编写一个程序包含两个类一个为Remotera类用来表示万能遥控器一个为TV类用来表示电视机要求遥控器能控制电视机提供如下功能
// ·电视机本身提供诸如setChannel(0、setVolume0等接口来修改频道和音量
// ·遥控器万能可控制电视机但诸如开灯、降低空调温度等操作对电视机无效
#include iostream
#include string.h
using namespace std;class TV;
class RemoteControl;class RemoteControl
{
public:void setVolume(TV tv, int volume); void setChannel(TV tv, int channel);
};class TV
{
public:TV() {}void show(){cout TV volume volume endl;cout TV channel channel endl;}private:friend void RemoteControl::setChannel(TV tv, int channel); //友元函数friend void RemoteControl::setVolume(TV tv, int volume);int volume;int channel;
};void RemoteControl::setVolume(TV tv, int volume)
{tv.volume volume;
}void RemoteControl::setChannel(TV tv, int channel)
{tv.channel channel;cout 友元函数调用 endl;tv.show();
}int main(int argc, char const *argv[])
{TV tv;RemoteControl rc;rc.setVolume(tv, 10);rc.setChannel(tv, 10);tv.show();return 0;
}友元类
// 练习利用友元类的技术点让两个类互为友元并访问对方的私有成员。遇到语法错误思考如何解决
#include iostream
#include string.h
using namespace std;class A;
class B;class A
{
public:A(int a){this-a a;}void show_a(B b);
private:int a;friend class B;
};
class B
{
public:B(int b){this-b b;}void show_b(A a);private:int b;friend class A;
};void B::show_b(A a)
{a 10;cout a a.a endl;cout b b endl;
}void A::show_a(B b)
{b 20;cout a a endl;cout b b.b endl;
}int main(int argc, char const *argv[])
{A a(10);B b(20);a.show_a(b);b.show_b(a);return 0;
}