******************************************************
*友元函数--2个类协同使用显示器
*******************************************************/
#include <iostream>
using
namespace std;
const
int IDLE=0;
const
int INUSE=1;
class C2;
//类前向声明
class C1{
int status;
//状态
public:
void setStatus(
int state);
friend
int idle(C1 a,C2 b);
};
class C2{
int status;
//状态
public:
void setStatus(
int state);
friend
int idle(C1 a,C2 b);
};
void C1::setStatus(
int state)
{
status=state;
}
void C2::setStatus(
int state)
{
status=state;
}
//友元函数idle判断屏幕是否空闲
int idle(C1 a,C2 b)
{
if(a.status | b.status)
return 0;
//正占用
else
return 1;
//空闲
}
int main(
int argc,
char* argv[])
{
C1 x;
C2 y;
x.setStatus(IDLE);
y.setStatus(IDLE);
if(idle(x,y))cout<<
"屏幕空闲,可以使用..."<<endl;
else cout<<
"屏幕正在使用中..."<<endl;
x.setStatus(INUSE);
if(idle(x,y))cout<<
"屏幕空闲,可以使用..."<<endl;
else cout<<
"屏幕正在使用中..."<<endl;
return 0;
}
*友元函数--2个类协同使用显示器
*******************************************************/
#include <iostream>
using
namespace std;
const
int IDLE=0;
const
int INUSE=1;
class C2;
//类前向声明
class C1{
int status;
//状态
public:
void setStatus(
int state);
friend
int idle(C1 a,C2 b);
};
class C2{
int status;
//状态
public:
void setStatus(
int state);
friend
int idle(C1 a,C2 b);
};
void C1::setStatus(
int state)
{
status=state;
}
void C2::setStatus(
int state)
{
status=state;
}
//友元函数idle判断屏幕是否空闲
int idle(C1 a,C2 b)
{
if(a.status | b.status)
return 0;
//正占用
else
return 1;
//空闲
}
int main(
int argc,
char* argv[])
{
C1 x;
C2 y;
x.setStatus(IDLE);
y.setStatus(IDLE);
if(idle(x,y))cout<<
"屏幕空闲,可以使用..."<<endl;
else cout<<
"屏幕正在使用中..."<<endl;
x.setStatus(INUSE);
if(idle(x,y))cout<<
"屏幕空闲,可以使用..."<<endl;
else cout<<
"屏幕正在使用中..."<<endl;
return 0;
}
注意idle是那2个类的"朋友".
本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/108321,如需转载请自行联系原作者