国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

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

C++成員函數—C++成員函數的定義和重載

2020-05-23 14:26:07
字體:
來源:轉載
供稿:網友
我們已經學會如何調用成員函數,那么成員函數又是如何聲明和定義的呢?它和普通函數有著什么異同點呢?

普通函數在使用之前必須聲明和定義,成員函數也是這樣。不過成員函數是屬于某一個類的,所以只能在類的內部聲明,即在定義類的時候寫明成員函數的函數原型,同時要注意此函數是公有的還是私有的。如果一個類的某個成員函數是私有的,那么它只能被這個類的其他成員函數調用。成員函數的函數原型和普通函數的函數原型在寫法上是一樣的。比如:
class Node//定義一個鏈表結點類
{
   public:
   int readi();//通過該函數讀取idata
   char readc();//通過該函數讀取cdata
   bool seti(int i);//通過該函數修改idata
   bool setc(char c);//通過該函數修改cdata
   bool setp(Node *p);//通過該函數設置前驅結點
   bool setn(Node *n);//通過該函數設置后繼結點
   private:
   int idata;//存儲數據保密
   char cdata; //存儲數據保密
   Node *prior;//前驅結點的存儲位置保密
   Node *next;//后繼結點的存儲位置保密
};

常成員函數

由于數據封裝在類的內部,在處理一些問題的時候就需要小心翼翼,不能把成員數據破壞了。以前我們介紹使用const來保護變量(就變成了常量),或保護指針所指向的內容,那么在類中,我們也可以使用const這個保留字來保護成員數據不被成員函數改變。我們把這種成員函數稱為常成員函數。它的寫法就是在函數的參數表后面加上一個const,比如:
    int readi() const;//通過該函數讀取idata,但不能改變任何成員數據
    char readc() const;//通過該函數讀取cdata,但不能改變任何成員數據
使用常成員函數,就保證了成員數據的安全,在此函數中任何修改成員數據的語句將被編譯器拒之門外。

成員函數的重載

和普通函數類似,在一個類中也可以有成員函數重載。成員函數的重載在規則上和普通函數也并無差別,這里不再贅述。
最終,我們將鏈表結點類的定義修改如下: 
class Node//定義一個鏈表結點類
{
   public:
   int readi() const;//通過該函數讀取idata,但不能改變任何成員數據
   char readc() const;//通過該函數讀取cdata,但不能改變任何成員數據
   bool set(int i);//重載,通過該函數修改idata
   bool set(char c);// 重載,通過該函數修改cdata
   bool setp(Node *p);//通過該函數設置前驅結點
   bool setn(Node *n);//通過該函數設置后繼結點
   private:
   int idata;//存儲數據保密
   char cdata; //存儲數據保密
   Node *prior;//前驅結點的存儲位置保密
   Node *next;//后繼結點的存儲位置保密
};

成員函數的定義

成員函數與普通函數的不同之處,在于成員函數是屬于某一個類的,而不能被隨意地調用。那么,我們在定義一個成員函數的時候如何來表達它是屬于某一個類的呢?這個時候我們就要用到::操作符,它表示該函數是屬于某一個類的,稱為域解析操作符因此在類定義結束后,定義一個成員函數的格式如下:
返回值類型類名::函數名(參數表)
{
   語句;
   ……
}

事實上,成員函數也是可以在類的定義中定義的(此時不需要域解析操作符),但是從程序的運行效率、可讀性、美觀性考慮,我們建議將成員函數的定義完全放在類定義的外面。于是,鏈表結點類和其成員函數的定義如下:
//node.h
class Node//定義一個鏈表結點類
{
   public:
   int readi() const;//通過該函數讀取idata,但不能改變任何成員數據
   char readc() const;//通過該函數讀取cdata,但不能改變任何成員數據
   bool set(int i);//重載,通過該函數修改idata
   bool set(char c);//重載,通過該函數修改cdata
   bool setp(Node *p);//通過該函數設置前驅結點
   bool setn(Node *n);//通過該函數設置后繼結點
   private:
   int idata;//存儲數據保密
   char cdata;//存儲數據保密
   Node *prior;//前驅結點的存儲位置保密
   Node *next;//后繼結點的存儲位置保密 
};//類定義結束,分號切勿忘記
int Node::readi() const//成員函數readi的定義
{
   return idata;
}
char Node::readc() const
{
   return cdata;
}
bool Node::set(int i)//重載成員函數定義
{
   idata=i;
   return true;
}
bool Node::set(char c)
{
   cdata=c;
   return true;
}
bool Node::setp(Node *p)
{
   prior=p;
   return true;
}
bool Node::setn(Node *n)
{
   next=n;
   return true;
}

在上面這些成員函數定義中,我們可以看出成員數據(或成員函數)在成員函數中可以直接使用。平時我們使用一個對象的公有成員數據時,我們要寫作“對象名.成員數據”,但是在成員函數中不需要也不能那樣寫。接下來,我們就能嘗試一下使用我們編寫的類了:(程序14.3)
//main.cpp
#include <iostream>
#include "node.h"//包含我們編寫好的鏈表結點類頭文件,必須用雙引號
using namespace std;
int main()
{
   Node a;//創建一個鏈表結點對象a
   a.set(1);//設置idata
   a.set('A');//設置cdata
   cout <<a.readi() <<endl;
   cout <<a.readc() <<endl;
   return 0;
}
運行結果:
1
A
注意這個程序有兩個文件,一個是頭文件node.h,一個是源文件main.cpp。如果你忘記了如何創建一個頭文件,那么請看本書的11.2節。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
青草视频在线播放| 精品国产丝袜高跟鞋| 亚洲精品一线| 在线观看中文字幕的网站| 91xx在线观看| 中文视频在线| 在线中文字幕观看| av手机免费观看| 久久99亚洲网美利坚合众国| 成人欧美亚洲| 国产激情视频一区二区三区| 在线免费观看黄色片| 亚洲成人av在线影院| 国内外激情在线| 国产高清视频免费最新在线| gogo在线高清视频| 国产精选在线观看| 天堂在线中文| 精品美女调教视频| 国产中文字幕在线| 999国产在线视频| 日本动漫理论片在线观看网站| 青青久在线视频免费观看| 国产美女极品在线| 中文在线有码| 中文字幕欧美日韩在线不卡| 亚洲日本伊人| 国产福利在线视频| 尤物网站在线| 青青草视频在线观看| 国产香蕉尹人视频在线| 午夜小视频在线| 国产对白叫床清晰在线播放| av在线播放国产| 国产国语**毛片高清视频| 国产蜜臀av在线播放| gogogogo高清视频在线| 国产卡一卡二卡三| 免费看黄视频网站| av亚洲男人天堂| 国产福利在线免费观看| 国产一区二区影视| 二区三区中文字幕| 青草视频在线播放| jizz在线免费观看| 一区二区精品区| 国产网站免费观看| 91sp网站在线观看入口| h网站免费在线观看| 中文在线视频| 在线三级中文| 亚洲国产成人综合| 国产精品久久久高清免费| 毛片在线视频| 九九在线免费视频| 黄色三级视频在线观看| а√天堂www在线а√天堂视频| 中文av字幕| 亚洲第一区视频| 亚洲激情丁香| 毛片视频免费观看| 天天操天天操一操| 2021天堂中文幕一二区在线观| 国产区高清在线| 国产区视频在线播放| a√在线视频| 久热久精久品这里在线观看| 亚洲成人在线播放| 久久精品亚洲7777影院| 超碰国产在线| 国产欧美日韩第一页| 在线免费观看黄色片| 日韩中文字幕久久久经典网| 国产在线免费观看| 中文字幕国产视频| 尤物在线精品视频| 国产九色porn网址| 四虎一区二区三区| 99热在线观看免费| 精品国产一区二区三区四区阿崩 | 美女免费视频黄| 中文字幕在线观看日本| 精品欧美不卡一区二区在线观看| av在线不卡网站| 国产福利免费观看| 国产免费一级| 一本大道五月香蕉| 国产人成在线观看| 国产真实伦在线观看| 中文字幕在线观看日本| 在线久久视频| 国产精品综合久久久久| 91亚洲精选| 国产精品久久久久永久免费看| 青青青青在线| а√最新版地址在线天堂| 国产对白在线| 国产成人夜间影院在线观看| 中文字幕中文字幕在线中高清免费版| 91资源在线观看| 国产国产国产国产国产国产| 日本中文字幕在线看| 亚洲欧美日韩成人网| 国产网站av| 99热在线免费观看| 成人无遮挡免费网站视频在线观看| 中文国产字幕在线观看| 一级黄色av| jizz亚洲| 久草在线资源福利| 九色福利视频| 国产在线观看a| 国产在线看片| 国产深夜视频在线观看| 992tv在线观看在线播放| 99reav在线| 香蕉视频免费在线播放| 亚洲精品一区中文字幕电影| 天天草天天干| 色欧美在线观看| 天天草天天操| 丁香视频五月| 国产精品777一区二区| 99精品老司机免费视频| www.操操操| 成在在线免费视频| 国产区成人精品视频| 在线观看的av| www在线观看播放免费视频日本| 免费在线黄色网址| 国产经典自拍视频在线观看 | 国产经典av| 亚洲欧美日韩成人网| 久热国产视频| 国产福利小视频在线观看| 伊人影院在线观看| 99热在线观看免费| 青青草原国产在线观看| 国产经典av| 成人免费一区二区三区牛牛| 在线伊人免费视频| 1区2区视频| 国产中文伊人| 日本啊v在线| 精品国产丝袜高跟鞋| 午夜国产视频| 国产在线观看网站| 9色在线视频网站| 中文字幕人成高视频| 日本在线观看| 在线免费观看你懂的| 国产一区二区三区美女秒播| а√资源新版在线天堂| 69国产精品视频| 国产日韩欧美精品一区二区三区| 麻豆电影传媒二区| 免费看ww视频网站入口| 在线国产1区| av男人的天堂网| 精品视频在线一区二区| 国产精品外围在线观看| 欧美高清视频| 亚洲欧美久久婷婷爱综合一区天堂| 国产青草视频在线观看视频| 国产精品久久麻豆| 国产黄色免费看| 国产黄大片在线观看画质优化| 国产主播福利在线| 国产美女自拍视频| 国产永久av在线| 国产精品臀控福利在线观看| 国产在线视频网站| 黄网站app在线观看下载视频大全官网| 中文岛国精品亚洲一区| 亚洲欧美国产另类首页| 伊人网在线免费观看| 天海翼中文字幕| 久久久久久久久久久久网站| 毛片网站在线观看| 最新超碰在线| 91中文字幕| 免费国产阿v视频在线观看| 国产美女一区视频| 国产精品视频流白浆免费视频| 国产黄色在线网站| 亚洲综合在线不卡| 国产有码在线| 国产调教视频在线观看| 国产粉嫩一区二区三区在线观看| 在线中文字幕观看| 国产理论电影在线| 在线中文免费视频| 超碰在线人人| 国产精品日日爱| www在线视频| 国产欧美日韩精品综合| 在线免费看av| 五月亚洲综合| www.毛片| 国产福利热线视频|