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;
}
有缘分,就可以任性!
#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;
}
相关文章推荐
- C++多线程编程
- C++ libcurl 使用
- C++容器类和Qt容器类的对比
- 设计模式C++实现(9)——享元模式
- C++运算符重载
- C++类与内存
- 【Reverse Integer】cpp
- VC++ 的this关键字
- Effective C++ 46条 需要类型转换时请为模板定义非成员函数
- 防止资源泄漏
- vector中针对自定义类型的排序
- 一个例子演示了C++异常的推荐用法
- C++ STL 容器自定义内存分配器
- C++ 复制构造函数
- C++中虚析构函数的作用
- c语言关键字
- C++ const用法 尽可能使用const
- C/C++ 基础编程
- C++ : 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo,onsizeonsizing
- C语言中main函数的參数具体解释