国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

靜態(tài)成員,友元,模板

2019-11-08 02:31:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

靜態(tài)成員

同類(lèi)的多個(gè)成員實(shí)現(xiàn)數(shù)據(jù)共享(全局變量破壞封裝性,但靜態(tài)成員要注意作用域)

●靜態(tài)數(shù)據(jù)成員

1.只能在類(lèi)體外初始化,通過(guò)類(lèi)名引用(而不是對(duì)象)

2.在類(lèi)外可以用對(duì)象引用公共靜態(tài)數(shù)據(jù)成員,也可用類(lèi)名引用靜態(tài)數(shù)據(jù)成員

3.私有靜態(tài)數(shù)據(jù)成員必須通過(guò)公共成員函數(shù)引用(公共成員函數(shù)可以引用靜態(tài)和非靜態(tài)數(shù)據(jù)成員)

●靜態(tài)成員函數(shù)

1.可被對(duì)象或者類(lèi)調(diào)用(一般用類(lèi)Box::)

2.靜態(tài)成員函數(shù)沒(méi)有this指針,故不能訪問(wèn)本類(lèi)中的非靜態(tài)成員,而主要用來(lái)訪問(wèn)靜態(tài)數(shù)據(jù)成員

(若要調(diào)用,則應(yīng)該用對(duì)象或者對(duì)象的引用做參數(shù))

友元

1.友元函數(shù)

●友元函數(shù)

類(lèi)外定義的普通函數(shù)作為類(lèi)的友元,若要訪問(wèn)類(lèi)中的私有數(shù)據(jù),需要建立形參對(duì)象才能訪問(wèn)

friend void display(Time &);void display(Time &t){cout << t.hour;}

●友元成員函數(shù)

Time的成員函數(shù)訪問(wèn)Date的數(shù)據(jù)成員

需要Date類(lèi)的提前聲明,類(lèi)內(nèi)此函數(shù)的友元類(lèi)引用,友元類(lèi)中的友元函數(shù)聲明

class Date;

class Time

{public:

void display();

void display(Date &);}

class Date

{friend void Time::display(Date &);}

void Time::display(Date &d)

{cout << d.month;}

t1.display();

t1.display(d1);//也要通過(guò)對(duì)象t1調(diào)用類(lèi)中函數(shù);

2.友元類(lèi)

若類(lèi)B是類(lèi)A 的友元類(lèi),B中所有函數(shù)可以訪問(wèn)A中的數(shù)據(jù)成員

友元是封裝的補(bǔ)充,一般不建議使用

單向性,不可傳遞

class Date;

class Time

{friendDate;

Public:…………}

總結(jié):若B想訪問(wèn)A,那么A就必須在本類(lèi)中聲明friendB(函數(shù)或類(lèi)),那么B就是A的友元

 

 

模板

首先看一下函數(shù)模板,T為數(shù)據(jù)類(lèi)型

功能相同而數(shù)據(jù)類(lèi)型不同的函數(shù)

Template<typename T>

T max(Ta, T b, T c){…returna;}

int i1=1,i2=2,i3=3,i;

i=max(i1,i2,i3);

類(lèi)模板

功能相同而數(shù)據(jù)類(lèi)型不同的類(lèi)

Template<typename T>

class Compare

{public:Compare(T a, T b);  T max();

PRivate:T x, y;}

Compare<int>cmp(1,2);

注意:如果在類(lèi)模板外定義成員函數(shù),每個(gè)都要加template:

templare<typenameT>

void Compare<T>::display(){…………;}

說(shuō)明

模板類(lèi)型參數(shù)可以有多個(gè),可以是類(lèi)型也可以是參數(shù)

templare<typename T,typename N,int KV>

class Some;

Some<int, double,5>obj;

總結(jié):

static :同類(lèi)不同對(duì)象的共享數(shù)據(jù)

友元:類(lèi)之間(或?qū)瘮?shù))的定向共享

模板:數(shù)據(jù)類(lèi)型或參數(shù)的參數(shù)化


上一篇:Socket編程

下一篇:KMP算法

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 修文县| 诸暨市| 万宁市| 大足县| 资兴市| 灵川县| 闵行区| 仁化县| 昌宁县| 攀枝花市| 潮安县| 阿巴嘎旗| 普定县| 晋州市| 姚安县| 织金县| 无为县| 江阴市| 都安| 澎湖县| 张家界市| 北票市| 恭城| 抚顺县| 北海市| 庆元县| 湛江市| 布尔津县| 绍兴市| 丰城市| 宜州市| 绵竹市| 武胜县| 芒康县| 阳东县| 凤凰县| 景谷| 宝清县| 大竹县| 墨竹工卡县| 桐庐县|