!!!!!!友元函数访问私有成员变量,但是不能直接在定义友元函数时调用私有成员变量,只能通过引用类对象的成员参数方式调用
例子:
#include <iostream>
using std::ostream;
class CFriendClass
{
public:
CFriendClass();
~CFriendClass();
friend int getValue(CFriendClass &friendObject);
friend ostream & operator<<(ostream &os, const CFriendClass &friendObject);
private:
int value;
};
using std::cout;
using std::endl;
CFriendClass::CFriendClass() :value(66)
{
}
int getValue(CFriendClass &friendObject)
{
//友元函数访问私有成员变量,但是不能直接在定义友元函数时调用私有成员变量,只能通过引用类对象的成员参数方式调用
cout << "getValue value==" << friendObject.value<<endl;
return friendObject.value;
}
ostream & operator<<(ostream &os, const CFriendClass &friendObject)
{
//友元函数访问私有成员变量,但是不能直接在定义友元函数时调用私有成员变量,只能通过引用类对象的成员参数方式调用
os << "operator friendObject.value==" << friendObject.value << endl;
return os;
}
CFriendClass::~CFriendClass()
{
}
转换函数