久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 編程 > C++ > 正文

C++教程:C++友元類講解

2020-05-23 14:25:46
字體:
來源:轉載
供稿:網友
在編寫鏈表類的時候我們有著這樣的困惑:鏈表類和鏈表結點類都是我們編寫的,我們能保證鏈表類對鏈表結點類的操作都是安全的。但由于類的封裝性,我們不得不編寫一些成員函數,以便于鏈表類訪問鏈表結點類的私有成員數據。好在鏈表結點類的成員數據并不是很多,否則豈不是需要一大堆成員函數來供別的類訪問?對于這種情況,我們能否告訴鏈表結點類:“鏈表類是安全的,讓它訪問你的私有成員吧”?

在C++中,可以用友元來解決這種尷尬的問題。所謂友元,就是作為一個類的“朋友”,可以例外地訪問它的私有成員數據或私有成員函數。

友元類

類似于鏈表類和鏈表結點類的問題,我們可以用友元類來解決。即鏈表類是鏈表結點類的“朋友”,可以直接訪問鏈表結點類的私有成員數據或私有成員函數。顯然,要做鏈表結點類的“朋友”,必須要得到鏈表結點類的認可。所以我們必須在鏈表結點類的聲明中告訴電腦,鏈表類是它認可的“朋友”,可以訪問它的私有成員。聲明友元類的語句格式為:
    friend class 類名;
下面我們來看一下,友元是如何讓我們更方便地設計程序的:(程序16.2.1)
//node.h
class Node//聲明一個鏈表結點類
{
   friend class Linklist;//在Node類中聲明友元類Linklist
   public:
   Node();
   Node(Node &n);
   Node(int i,char c='0');
   Node(int i,char c,Node *p,Node *n);
   ~Node();
   static int allocation();
   private:
   int idata;
   char cdata;
   Node *prior;
   Node *next;
   static int count;
};
//node.cpp
#include "node.h"
#include <iostream>
using namespace std;
int Node::count=0;
Node::Node()
{
   cout <<"Node constructor is running..." <<endl;
   count++;
   idata=0;
   cdata='0';
   prior=NULL;
   next=NULL;
}
Node::Node(int i,char c)
{
   cout <<"Node constructor is running..." <<endl;
   count++;
   idata=i;
   cdata=c;
   prior=NULL;
   next=NULL;
}
Node::Node(int i,char c,Node *p,Node *n)
{
   cout <<"Node constructor is running..." <<endl;
   count++;
   idata=i;
   cdata=c;
   prior=p;
   next=n;
}
Node::Node(Node &n)
{
   count++;
   idata=n.idata;
   cdata=n.cdata;
   prior=n.prior;
   next=n.next;
}
Node::~Node()
{
   count--;
   cout <<"Node destructor is running..." <<endl;
}
int Node::allocation()
{
   return count;
}
//linklist.h
#include "node.h"
#include <iostream>
using namespace std;
class Linklist//定義一個鏈表類
{
   public:
   Linklist(int i,char c);
   Linklist(Linklist &l);
   ~Linklist();
   bool Locate(int i);
   bool Locate(char c);
   bool Insert(int i=0,char c='0');
   bool Delete();
   void Show();
   void Destroy();
   private:
   Node head;
   Node * pcurrent;
};
Linklist::Linklist(int i,char c):head(i,c)//鏈表的構造函數
{
   cout<<"Linklist constructor is running..."<<endl;
   pcurrent=&head;
}
Linklist::Linklist(Linklist &l):head(l.head)
{
   cout<<"Linklist Deep cloner running..." <<endl;
   pcurrent=&head;
   Node * ptemp1=l.head.next;//直接訪問私有成員數據
   while(ptemp1!=NULL)
   {
      Node * ptemp2=new Node(ptemp1->idata,ptemp1->cdata,pcurrent,NULL);
      pcurrent->next=ptemp2;
      pcurrent=pcurrent->next;
      ptemp1=ptemp1->next;
}
}
Linklist::~Linklist()
{
   cout<<"Linklist destructor is running..."<<endl;
   Destroy();
}
bool Linklist::Locate(int i)
{
   Node * ptemp=&head;
   while(ptemp!=NULL)
   {
      if(ptemp->idata==i)
      {
         pcurrent=ptemp;
         return true;
      }
      ptemp=ptemp->next;
   }
   return false;
}
bool Linklist::Locate(char c)
{
   Node * ptemp=&head;
   while(ptemp!=NULL)
   {
      if(ptemp->cdata==c)
      {
         pcurrent=ptemp;
         return true;
      }
      ptemp=ptemp->next;
   }
   return false;
}
bool Linklist::Insert(int i,char c)
{
   if(pcurrent!=NULL)
   {
      Node * temp=new Node(i,c,pcurrent,pcurrent->next);
      if (pcurrent->next!=NULL)
      {
         pcurrent->next->prior=temp;
      }
      pcurrent->next=temp;
      return true;
   }
   else
   {
      return false;
   }
}
bool Linklist::Delete()
{
   if(pcurrent!=NULL && pcurrent!=&head)
   {
      Node * temp=pcurrent;
      if (temp->next!=NULL)
      {
         temp->next->prior=pcurrent->prior;
      }
      temp->prior->next=pcurrent->next;
      pcurrent=temp->prior;
      delete temp;
      return true;
   }
   else
   {
      return false;
   }
}
void Linklist::Show()
{
   Node * ptemp=&head;
   while (ptemp!=NULL)
   {
      cout <<ptemp->idata <<'/t' <<ptemp->cdata <<endl;
      ptemp=ptemp->next;
   }
}
void Linklist::Destroy()
{
   Node * ptemp1=head.next;
   while (ptemp1!=NULL)
   {
      Node * ptemp2=ptemp1->next;
      delete ptemp1;
      ptemp1=ptemp2;
   }
   head.next=NULL;
}
//main.cpp同程序16.1

運行結果:
請輸入一個整數和一個字符:
3 F
Node constructor is running...
Linklist constructor is running...
Node constructor is running...
Node constructor is running...
After Insert
3 F
2 B
1 C
Node Allocation:3
Node constructor is running...
An independent node created
Node Allocation:4
Node destructor is running...
Linklist destructor is running...
Node destructor is running...
Node destructor is running...
Node destructor is running...

可以看到,程序的運行結果和程序16.1的結果一樣,但是鏈表結點類沒有程序16.1中那么繁瑣。并且在鏈表類中完全都是直接訪問鏈表結點類的成員數據,大大減少了調用函數產生的開銷,這樣執行程序的效率也就得以提高了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产素人在线观看| 亚洲自拍偷拍图区| 国产污视频在线观看| 激情五月婷婷久久| 欧美三日本三级少妇三99| 2018中文字幕一区二区三区| 日韩成人高清在线| 色婷婷国产精品综合在线观看| jlzzjlzz国产精品久久| 欧美 日韩 国产 精品| 久久久.www| 亚洲成人福利视频| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 国产女人aaa级久久久级 | 国产999精品| 欧美久久久久久蜜桃| 亚洲日本成人在线观看| 国产精品一区二区在线播放| 欧美一级在线免费观看| 欧美日韩中文字幕视频| 2一3sex性hd| 好男人www社区| 国产又粗又爽又黄的视频| 国产91精品入口17c| 国产成人啪精品视频免费网| 丝袜美腿亚洲一区二区| 日韩天堂在线观看| 色悠悠久久综合| 亚洲乱码精品一二三四区日韩在线| 国产一区二区三区免费看| 五月天婷婷在线观看| 97人妻精品一区二区三区视频| 久久精品视频国产| 男女做暖暖视频| 99久久国产精| 国产ts在线播放| 捆绑裸体绳奴bdsm亚洲| 亚洲人视频在线| 无码人妻丰满熟妇区毛片| 91嫩草国产丨精品入口麻豆| 亚洲午夜精品久久| 亚洲日本精品一区| 欧美日韩国产免费一区二区三区| av免费观看久久| 成人信息集中地欧美| 久久色视频免费观看| 成人免费视频一区二区| 不卡视频在线观看| 99久久久国产精品| 久久九九影视网| 国产福利一区二区三区在线视频| 日韩电影免费在线| 超碰在线人人干| 国产精品嫩草影院桃色| 波多野结衣一区二区三区在线 | 亚洲三级视频在线观看| 一区在线播放视频| 亚洲成人综合视频| 欧美在线视频日韩| 欧美日本在线一区| 亚洲国产福利在线| 综合av色偷偷网| 国外成人性视频| 国产精品久久久久久久久久小说 | 操人视频在线观看欧美| 美女福利精品视频| 亚洲2020天天堂在线观看| 浅井舞香一区二区| 亚洲sss综合天堂久久| 九九九久久久| 米仓穗香在线观看| 91小视频网站| 国产一级黄色录像| 精品在线免费观看视频| 91一区二区视频| 免费在线观看成人| 久久色视频免费观看| 亚洲电影一区二区三区| 欧美日韩国产一级片| 一区二区亚洲欧洲国产日韩| 午夜精品久久久久久久白皮肤| 亚洲iv一区二区三区| 亚洲一区三区| 亚洲最新在线| 亚洲 欧美 另类人妖| www.xx日本| 97人人爽人人爽人人爽| 成人看片黄a免费看在线| 亚洲自拍另类综合| 日韩激情第一页| 欧美中文在线免费| 夜夜爽99久久国产综合精品女不卡| 成人在线免费观看av| 久久中文字幕人妻| 黄色片免费观看视频| 成人羞羞国产免费图片| 日本一区二区久久| 精品三级在线观看| 国产精品对白刺激| 蜜臀精品一区二区| 亚洲制服丝袜在线播放| 国产成人无码专区| 国产高清一区日本| 在线看不卡av| 久久免费视频观看| 伊人久久婷婷色综合98网| 特种兵之深入敌后| 国产99免费视频| 99久久免费精品| 欧美精品自拍偷拍| 国产ts人妖一区二区三区 | 国产又爽又黄无码无遮挡在线观看| 精品一区二区三区人妻| 亚洲a在线播放| 欧洲美女和动交zoz0z| 国产毛片久久久久久久| 人人妻人人澡人人爽久久av| 一区二区三区波多野结衣在线观看| 最近2019好看的中文字幕免费| 你懂的网址一区二区三区| 手机免费看av片| 囯产精品久久久久久| 精品欧美aⅴ在线网站| 欧美精品久久久久久久| 97干在线视频| 天天综合天天干| 中文字幕巨乱亚洲| 久久精品在线视频| www.亚洲视频.com| 伊人久久久久久久久久久久| 国产精品美女www爽爽爽| 日韩最新中文字幕电影免费看| 丝袜足脚交91精品| 玖玖爱这里只有精品| 久久色.com| 欧美人在线观看| 色诱视频在线观看| 国产sm主人调教女m视频| 欧美视频一区二区三区…| 国产精品亚洲片夜色在线| 女教师高潮黄又色视频| 日本女优在线视频一区二区| 欧美xxxx老人做受| 亚洲综合第一| 欧美一级做a爰片免费视频| 亚洲女子a中天字幕| 国产成人在线播放| 黄色在线免费播放| 国产成人免费视频网站| 色阁综合伊人av| 日日摸日日碰夜夜爽av| av手机免费看| 日韩午夜激情电影| 亚洲国产精品综合| 中文字幕一区二区三区人妻四季 | 韩日午夜在线资源一区二区| 久久日免费视频| 国产校园另类小说区| 日本成熟性欧美| 极品粉嫩小仙女高潮喷水久久| 成人一区在线观看| 777国产偷窥盗摄精品视频| 国产乱淫av片| 国产性做久久久久久| 欧美最近摘花xxxx摘花| 国产精品无码午夜福利| 91免费视频网址| 奇门遁甲1982国语版免费观看高清| 91精品又粗又猛又爽| 国产黄色成人av| 性欧美xxxx交| 精品人妻无码一区二区三区换脸| 国产欧美一区二区精品忘忧草| 国产极品jizzhd欧美| 免费看91的网站| 一区二区日韩av| 精品蜜桃一区二区三区| www.国产com| 日韩视频在线观看一区二区| 国产日韩欧美精品在线观看| 麻豆精品在线播放| 久久久久久伊人| 美国一级黄色录像| 欧美日韩国产精品专区 | 日韩欧美在线看| 四虎永久在线精品免费一区二区| 波多野结衣电车| 亚洲成人精品视频在线观看| 免费大片在线观看| 国产91精品一区二区| 国产精品久久久久久久电影 | 欧美在线观看网址综合| 国产欧美小视频| www香蕉视频| 亚洲国产精品免费| 三级黄色片播放| 国产精品免费观看视频| 久久综合给合久久狠狠色| 国产色在线视频| 神马久久久久久| 国产精品久久久久无码av色戒| 亚洲综合偷拍欧美一区色| 欧美精品国产精品久久久 | 欧美专区在线视频| 久久久午夜影院| 日韩成人久久久| 成人手机在线免费视频| 亚洲不卡在线观看| 免费无码国产v片在线观看| av在线一区二区| 国精产品一区二区| 日韩国产成人精品| 国产日韩av在线| 国产免费不卡视频| 欧美激情在线视频二区| 久久av高潮av无码av喷吹| 日韩av在线精品| 丰满少妇一区二区三区| 欧美专区在线观看一区| 国产一级做a爰片久久| 一区二区三区四区不卡视频| 人人妻人人添人人爽欧美一区| 91玉足脚交白嫩脚丫在线播放| 麻豆av一区二区三区| 国内精品伊人久久久久av影院| 91在线观看免费高清| 天堂网av2014| 国产精品爽黄69天堂a| 亚洲精品国产手机| 国产噜噜噜噜久久久久久久久| 国产按摩一区二区三区| 国产精品极品美女粉嫩高清在线| 中文字幕手机在线视频| 久久电影一区二区| 黄色av网站免费| 91国内精品久久| 国产视频www| 国产欧美一区二区三区四区| 人妻视频一区二区三区| 91网在线免费观看| 奇米影视7777精品一区二区| 精品国产一区二区三区麻豆免费观看完整版 | 亚洲日本护士毛茸茸| 日本一区二区黄色| 精品国产乱码久久久久久虫虫漫画 | 免费a级黄色片| 欧美一区二区三区视频在线 | avtt中文字幕| 在线不卡中文字幕| 一级片久久久久| 国产亚洲欧洲在线| 波多野结衣视频在线观看| 91地址最新发布| 久久精品官网| 日本在线成人一区二区| 日本一区免费视频| 国产乱码一区二区三区四区| 91精品久久久久久久99蜜桃| 精品无码一区二区三区蜜臀| 日韩在线小视频| www.日韩在线观看| 国产欧美日韩在线播放| 成人app下载| 久久久久狠狠高潮亚洲精品| 欧洲激情一区二区| 国产免费久久久久| 蜜臀久久99精品久久久无需会员 | 青花影视在线观看免费高清| 日韩中文字幕久久| 精品久久久无码中文字幕| 国产欧美一区二区三区不卡高清| 久久日一线二线三线suv| www午夜视频| 欧美一级理论性理论a| 久久久久久久9999| 欧美亚洲国产视频小说| 美日韩一区二区| 18禁网站免费无遮挡无码中文| 日韩欧美成人网| 国产美女福利视频| 亚洲午夜电影在线观看| 国产99久久久精品| 成人国产精品一区二区| 四季av中文字幕| 久久久91精品国产| 午夜精品久久久久久久99| 亚洲一区二区三区香蕉| 久久综合色一综合色88| 年下总裁被打光屁股sp | 国产精品一区二区三区久久| 国产在线不卡视频| 一本大道东京热无码aⅴ| 欧洲精品一区二区| 亚洲视屏在线观看| 欧美a级免费视频| 日韩中文字幕欧美| 国产成人精品影视| 特级西西www444人体聚色| 成人欧美一区二区三区黑人| 亚洲3atv精品一区二区三区| 亚洲精品国产精品国自产网站按摩| 国产精品无码免费专区午夜| xvideos国产精品| 欧美经典一区二区| 国产在线视频你懂的| 青青青在线观看视频| 久久久久久久一区二区| 亚洲综合偷拍欧美一区色| 亚洲精品中文字幕成人片| 天天av天天操| 97伦理在线四区| 亚洲一级免费视频| 久久久久久久久伊人| 中文在线字幕av| 国产精品视频黄色| 成人片在线免费看| 亚洲色图17p| 亚洲国产人成综合网站| 网站黄在线观看| 法国伦理少妇愉情| 亚洲精品一区二区三区av| 96精品视频在线| 日韩欧美激情四射| 亚洲三级小视频| 欧美一区二不卡视频| 久久精品国产亚洲av香蕉| 在线视频观看一区二区| 亚洲春色在线| 国产欧美日韩免费| 亚洲人成电影在线播放| 性感美女久久精品| 国产亚洲综合色| 极品少妇一区二区三区精品视频| 久久久久无码国产精品| 国产无套精品一区二区三区| 今天免费高清在线观看国语| 91在线短视频| 国产精品国产三级国产aⅴ浪潮 | 国产欧美第一页| 黄色在线观看免费| 先锋资源在线视频| 久久亚洲中文字幕无码| 三区精品视频| 国产在线观看一区| 国产精品极品在线| 日韩经典第一页| 一区二区欧美国产| 精品少妇theporn| 岛国av免费观看| 人人爽人人爽av| 日本高清久久久| 国产午夜福利视频在线观看| 色姑娘综合av| 黄色www在线观看| 做爰高潮hd色即是空| 伊人婷婷久久| 国产女主播av| www.激情网| 欧美日本视频在线观看| www日韩视频| 色综合影院在线| 欧美激情国产高清| 国产日韩精品电影| 精品国产免费人成电影在线观...| 亚洲综合第一| www.五月天色| 麻豆视频在线观看| 成人午夜福利视频| 91麻豆精品视频| 色综合中文字幕国产| 日韩av有码在线| 国产免费一区二区三区在线能观看| 久久精品美女| 成年女人18级毛片毛片免费 | 欧美成人免费播放| 韩日午夜在线资源一区二区| 国自产拍偷拍精品啪啪一区二区| 精产国品一二三区| 这里只有精品免费视频| 久久国产精品露脸对白| 亚洲色图一区二区| 亚洲天堂网站在线观看视频| 国产精品一区二区性色av| 国产特级淫片高清视频| frxxee中国xxx麻豆hd| 亚洲图片欧美在线| а天堂中文在线资源| 99久久99久久精品国产| 国产精品一区二区在线观看网站| 欧美一级生活片| 国产日韩久久| 九九九九九九九九| 国产精品久久久久久久久久久久久久久久久久 | 又色又爽的视频| 久久精品国产久精国产| 6080午夜不卡| 亚洲最大福利网站| 在线视频第一页| 久久99热这里只有精品| 91精品啪在线观看国产60岁| 91夜夜揉人人捏人人添红杏| 国产福利在线导航| 亚洲视频免费观看| 国产精品亚洲欧美导航| 丰满人妻一区二区三区免费视频棣| 日本视频一区二区| 国产亚洲精品日韩| 国产原创中文在线观看| 最近中文字幕免费观看| 在线观看亚洲专区|