亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

C++教程:C++靜態成員函數

2020-05-23 14:25:46
字體:
來源:轉載
供稿:網友
靜態成員數據是某一個類所具有的屬性,而不是某一個對象的屬性,所以它的存在并不依賴于對象。那么,如果一個類沒有任何對象實例時,所有的普通成員函數都無法使用,我們該如何訪問私有的靜態成員數據呢?

既然成員數據可以屬于某一個類而不屬于某一個具體的對象,成員函數能否這樣呢?答案是肯定的。在C++中,除了有靜態成員數據,還有靜態成員函數。靜態成員函數也是屬于某一個類而不屬于某一個具體的對象的。靜態成員函數的聲明方法為:
    static 返回值類型函數名(參數表);
不過,在聲明靜態成員函數時,卻不能出現static。


下面我們就來看一下靜態成員數據、靜態成員函數在程序中如何使用:(程序16.1)
//node.h
class Node//聲明一個鏈表結點類
{
   public:
   Node();//構造函數的聲明
   Node(Node &n);
   Node(int i,char c='0');
   Node(int i,char c,Node *p,Node *n);
   ~Node();//析構函數
   int readi() const;
   char readc() const;
   Node * readp() const;
   Node * readn() const;
   bool set(int i);
   bool set(char c);
   bool setp(Node *p);
   bool setn(Node *n);
   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;//靜態成員數據初始化
//未定義的函數與程序15.5相同
Node::Node()//構造函數的定義
{
   cout <<"Node constructor is running..." <<endl;
   count++;//分配結點數增加
   idata=0;
   cdata='0';
   prior=NULL;
   next=NULL;
}
Node::Node(int i,char c)//構造函數重載1
{
   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)//構造函數重載2
{
   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()//在定義靜態成員函數時不能出現static
{
   return count;//返回已分配結點數
}
//linklist.h同程序15.5
//main.cpp
#include "Linklist.h"
#include <iostream>
using namespace std;
int main()
{
   int tempi;
   char tempc;
   cout <<"請輸入一個整數和一個字符:" <<endl;
   cin >>tempi >>tempc;
   Linklist a(tempi,tempc);
   a.Locate(tempi);
   a.Insert(1,'C');
   a.Insert(2,'B');
   cout <<"After Insert" <<endl;
   a.Show();
   cout <<"Node Allocation:" <<Node::allocation() <<endl;//調用靜態成員函數
   Node b;
   cout <<"An independent node created" <<endl;
   cout <<"Node Allocation:" <<b.allocation() <<endl;//調用靜態成員函數
   return 0;
}

運行結果:
請輸入一個整數和一個字符:
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...

可見,記錄結點分配情況的功能已經實現。該程序中出現了兩種調用靜態成員函數的方法,一種是類名::靜態成員函數名(參數表),另一種是對象名.靜態成員函數名(參數表),這兩種調用方法的效果是相同的。由于靜態成員函數是屬于類的,不是屬于某一個具體對象,所以它分不清到底是訪問哪個對象的非靜態成員數據,故而不能訪問非靜態成員數據。

名不符實的static

在第11章中,我們遇到過保留字static,其作用是使局部變量在函數運行結束后繼續存在,成為靜態變量。(或者說存儲空間在編譯時靜態分配)而本章中static的含義是“每個類中只含有一個”,與第11章中的static毫不相關。所以說這里的static是名不符實的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
51久久精品夜色国产麻豆| 精品亚洲精品福利线在观看| 国产在线98福利播放视频| 欧美裸体男粗大视频在线观看| 国产精品入口免费视频一| 欧美成年人在线观看| 久久艳片www.17c.com| 97婷婷大伊香蕉精品视频| 亚洲精品国产综合区久久久久久久| 欧美中文字幕在线观看| 国产精品小说在线| 国产精品美女999| 欧美精品videossex性护士| 久久影视电视剧凤归四时歌| 国产精品三级在线| 狠狠久久亚洲欧美专区| 久久这里只有精品视频首页| 欧美性做爰毛片| 一本色道久久88综合日韩精品| 欧美成人亚洲成人| 欧美日韩激情小视频| 国产黑人绿帽在线第一区| 欧美成人剧情片在线观看| 亚洲丝袜一区在线| 国产欧美日韩综合精品| 亲子乱一区二区三区电影| 国产精品丝袜久久久久久不卡| 欧美丝袜美女中出在线| 4k岛国日韩精品**专区| 亚洲精品欧美日韩专区| 91久久久久久久久久| 亚洲激情免费观看| 日韩欧美国产高清91| 亚洲欧美在线磁力| 欧美日韩国产成人| 国产免费一区二区三区在线能观看| 亚洲成人精品在线| 国产脚交av在线一区二区| 亚洲日本欧美日韩高观看| 中文在线不卡视频| 精品日本高清在线播放| 成人自拍性视频| 亚洲国产成人精品久久久国产成人一区| 中日韩美女免费视频网站在线观看| 亚洲影视九九影院在线观看| 成人精品一区二区三区电影免费| 国产成人高潮免费观看精品| 亚洲日韩第一页| 国产亚洲欧美日韩精品| 国a精品视频大全| 欧美激情区在线播放| 日本在线观看天堂男亚洲| 91精品国产成人www| 欧美视频二区36p| 亚洲激情视频在线观看| 91精品国产沙发| 精品亚洲精品福利线在观看| 精品免费在线观看| 2019av中文字幕| 91国内免费在线视频| 裸体女人亚洲精品一区| 国产不卡av在线| 国内免费久久久久久久久久久| 91精品国产91| 日韩国产欧美精品一区二区三区| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲在线免费观看| 久久免费国产视频| 欧美日韩精品二区| 久久国产精品亚洲| 色综合老司机第九色激情| 国产精品电影在线观看| 国产精品a久久久久久| 成人黄色片网站| 4438全国亚洲精品在线观看视频| 日韩中文在线观看| 国产69精品久久久久9999| 欧美电影院免费观看| 国产成人精品在线观看| 中文字幕亚洲一区二区三区| 韩国19禁主播vip福利视频| 欧美一级高清免费播放| 亚洲免费视频网站| 午夜精品福利电影| 国产日韩在线看| 国产精品欧美久久久| 久久久免费观看| 亚洲男人天堂网| 成人午夜在线观看| 日韩亚洲欧美中文高清在线| 成人国产精品一区二区| 久久噜噜噜精品国产亚洲综合| 日韩黄色在线免费观看| 欧美日韩在线影院| 在线性视频日韩欧美| 97超级碰碰人国产在线观看| 欧美精品福利在线| 亚洲成avwww人| 国产精品一区二区三区成人| 亚洲午夜性刺激影院| 国产精品黄页免费高清在线观看| 欧美激情伊人电影| 欧美高清videos高潮hd| 国产精品成人av在线| 国产精品久久久久久久久久免费| 8x海外华人永久免费日韩内陆视频| 精品成人国产在线观看男人呻吟| 日韩av电影手机在线观看| 国产日韩在线一区| 精品久久香蕉国产线看观看亚洲| 久久视频免费在线播放| 国产日韩精品入口| 国内外成人免费激情在线视频网站| 97超级碰碰碰| 精品性高朝久久久久久久| 中文字幕在线视频日韩| 色青青草原桃花久久综合| 日韩视频―中文字幕| 亚洲欧美国产视频| 97在线视频观看| 在线观看中文字幕亚洲| 国产999视频| 欧美激情精品久久久久久黑人| 91亚洲精品久久久久久久久久久久| 欧美放荡办公室videos4k| 欧美诱惑福利视频| 国产精品一区二区av影院萌芽| 亚洲日韩中文字幕| 国产精品一区二区电影| xxx成人少妇69| 992tv成人免费视频| 日本国产欧美一区二区三区| 国内精品美女av在线播放| 亚洲缚视频在线观看| 精品亚洲国产成av人片传媒| 亚洲一区二区久久久久久| 国产丝袜视频一区| 免费91麻豆精品国产自产在线观看| 亚洲国产精品va在线| 成人免费观看网址| 国产精品夫妻激情| 日韩精品中文字幕在线观看| 青青草原一区二区| 日本精品久久电影| 久久久久久国产三级电影| 国产一区二区美女视频| 精品日韩视频在线观看| 免费97视频在线精品国自产拍| 欧美激情a∨在线视频播放| 国产成人啪精品视频免费网| 91久久夜色精品国产网站| 日韩亚洲欧美中文在线| 91av视频在线观看| 菠萝蜜影院一区二区免费| 国产亚洲欧洲高清一区| 国内精品模特av私拍在线观看| 精品久久香蕉国产线看观看gif| 亚洲国内精品视频| 国产精品丝袜白浆摸在线| 欧美性极品xxxx做受| 午夜美女久久久久爽久久| 欧美一级黄色网| 国产视频精品在线| 精品久久久久久中文字幕大豆网|