友元函数的简单说明
首先友元函數(shù)為了方便一個(gè)類去訪問另一個(gè)類中的成員函數(shù)和成員變量,需要使用關(guān)鍵字friend在函數(shù)的聲明時(shí),友元函數(shù)不屬于任何類的成員函數(shù),它是在類外定義的全局函數(shù)??梢栽诒绢愔新暶饔言瘮?shù),聲明如下:
friend void printMsg();然后在類外定義void printMsg(myClass *s)函數(shù)。在此函數(shù)中可以通過形參myClass類對(duì)象或指針,引用來訪問類myClass的成員變量,這里對(duì)于任何訪問權(quán)限的成員變量都可以訪問。
還可以使用另一種方式,用一個(gè)類的成員函數(shù)作為另一個(gè)類的友元函數(shù)。
在類A中定義成員函數(shù):
在類B中聲明類A中的函數(shù)void printMsg(B *s)為類B的友元函數(shù)。
class B{ public: friend void A::printMsg(B *s);//在類B中聲明A的友元函數(shù) };這樣類A就可以通過printMsg函數(shù)的指針s訪問類B的私有成員了。
還有另一種友元類,將一個(gè)類聲明為另一個(gè)類的友元類。
在另一個(gè)類中聲明first為last的友元類。
class last{ public: friend class first;//first作為last的友元類 };這樣first的成員函數(shù)就可以訪問last的私有成員了。
總結(jié)
- 上一篇: 计算机学业测试答案解析,计算机测试题及答
- 下一篇: js $.ajax stop,jQuer