载入中。。。 'S bLog
 
载入中。。。
 
载入中。。。
载入中。。。
载入中。。。
载入中。。。
载入中。。。
 
填写您的邮件地址,订阅我们的精彩内容:


 
VC++学习笔记18-友元类和方法.txt
[ 2010/8/8 20:32:00 | By: 梦翔儿 ]
 

//定义友元类
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CItem
{
private:
 char m_Name[128];
 void OutputName()
 {
  cout<<m_Name<<endl;
 }
public:
 friend class CList; //将CList作为友元
 void SetItemName(const char* pchData)
 {
  if(pchData!=NULL)
  {
   strcpy(m_Name,pchData);
  }
 }
 CItem()  //构造
 {
  memset(m_Name,0,128); //初始化数据成员
 }
};
class CList
{
private:
 CItem m_Item;
public:
 void OutputItem();
};
void CList::OutputItem()
{
 m_Item.SetItemName("BeiJing");
 m_Item.OutputName();
}
=======
//定义友元类
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CItem; //前导声明CItem类

class CList
{
private:
 CItem *m_pItem;
public:
 CList();
 ~CList();
 void OutputItem();
};

class CItem
{
 friend void CList::OutputItem(); //声明友元函数
private:
 char m_Name[128];
 void OutputItem()
 {
  cout<<m_Name<<endl;
 }
public:
 void SetItemName(const char* pchData)
 {
  if(pchData!=NULL)
  {
   strcpy(m_Name,pchData);
  }
 }
 CItem()
 {
  memset(m_Name,0,128);
 }
};

void CList::OutputItem()
{
 m_pItem->SetItemName("BeiJing");
 m_pItem->OutputItem(); //在友元函数中访问CItem类的私有方法

OutputName
}

CList::CList()
{
 m_pItem=new CItem();
}

CList::~CList()
{
 delete m_pItem;
 m_pItem = NULL;
}

int main()
{
 CList list;
 list.OutputItem();
 return 0;
}
=====
//也可以将全局函数定义为友元
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CItem
{
 friend void OutputItem(CItem *PItem); //全局函数OutputItem定义

为友元函数
private:
 char m_Name[128];
 void OutputItem()
 {
  cout<<m_Name<<endl;
 }
public:
 void SetItemName(const char* pchData)
 {
  if(pchData!=NULL)
  {
   strcpy(m_Name,pchData);
  }
 }
 CItem()
 {
  memset(m_Name,0,128);
 }
};

void OutputItem(CItem *pItem)   //定义全局函数
{
 if(pItem!=NULL)
 {
  pItem->SetItemName("同一个世界,同一个梦想");
  pItem->OutputItem();
 }
}


int main()
{
 CItem Item;
 OutputItem(&Item);
 return 0;
}
==========

 
 
发表评论:
载入中。。。

 
 
 

梦翔儿网站 梦飞翔的地方 http://www.dreamflier.net
中华人民共和国信息产业部TCP/IP系统 备案序号:辽ICP备09000550号

Powered by Oblog.