#include "stdafx.h"
#include "iostream"
using namespace std;
class MyClass
{
int _i;
friend void Increment(MyClass& f);
public:
const int NUM;
//常量值的定义:NUM()
MyClass(int i = 0) :NUM(0)
{
_i = i;
}
int GetValue()const
{
return _i;
}
};
//把Class对象的别名传进去,友元函数可以访问类的私有成员变量
//f._i=_i++时_i的值是0,f._i=++_i时_i的值是1
void Increment(MyClass& f)
{
f._i++;
}
int _tmain()
{
MyClass obj;
//Increment是友元函数,访问类的成员函数时需要类的对象访问
//Increment是类的友元函数不是类的成员函数
Increment(obj);
cout << "NUM=" << obj.NUM <<endl<< "Value=" << obj.GetValue() << endl;
return 0;
}