您的位置:首页 > 编程语言 > C语言/C++

C++友元函数(有缘分,咋都行!)

2015-06-05 15:26 525 查看
酒逢知己么么哒,话不投机呵呵呵。

有缘分,就可以任性!

#include "stdafx.h"
#include "string.h"

class CItem{

//只让名为"OutputItem(CItem *pItem)"的这个函数访问自己的私有对象,
//但是如果OutputItem这个函数没有定义,这里也不会报错.
friend void OutputItem(CItem *pItem);
private:
char m_Name[128];
void OutputName()
{
//printf("%s\n",m_Name);
}

public:
void SetItemName(const char* pchData){
if(pchData !=NULL){
strcpy_s(m_Name ,pchData);
}
}
CItem() //定义构造函数
{
memset(m_Name,0,128); //初始化数据成员
}
};

//下面这个函数可以访问
void OutputItem(CItem *pItem){
if(pItem != NULL){
pItem->SetItemName("OWOD");
pItem->OutputName();

//printf("%s\n",pItem->m_Name); //这样也行,不会报错

}
}

// 这个函数不注释就会报错,OutputItem2并不是CItem的友好函数
//void OutputItem2(CItem *pItem){
// if(pItem != NULL){
// pItem->SetItemName("OWOD");
// pItem->OutputName(); //这里会报错,函数已存在,但不可访问
// }
//}

int _tmain(int argc, _TCHAR* argv[])
{
CItem item;
OutputItem(&item); //通过全局函数访问CItem类的私有方法.
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: