C++之:友元類

來源:互聯網
上載者:User

標籤:調用   nes   一個   code   pac   this   down   append   function   

一、文章來由

上一篇寫了友元函數,這一次寫一個姊妹篇,繼續深入探究一下友元類。

二、定義

友元類的全部成員函數都是還有一個類的友元函數。都能夠訪問還有一個類中的隱藏資訊(包含私人成員和保護成員)。

當希望一個類能夠存取還有一個類的私人成員時,能夠將該類聲明為還有一類的友元類。定義友元類的語句格式例如以下:

friend class 類名;

當中:friend和class是關鍵字,類名必須是程式中的一個已定義過的類。

三、範例
#include <iostream>using namespace std;class Radius{    friend class Circle;   //聲明Circle為Radius的友元類    friend void Show_r(Radius &n);     //聲明Show_r為友元函數public:Radius(int x){    r = x;}~Radius(){}private:    int r;};void Show_r(Radius &n){    cout<<"圓的半徑為: "<<n.r<<endl;    //調用Radius對象的私人成員變數r}class Circle{public:    Circle(){}    ~Circle(){}double area(Radius a){    s = a.r * a.r * 3.1415926;             //調用Radius對象的私人成員變數r    return s;}private:    double s;};int main(int argc, char *argv[]){    Radius objRadius(9);    Circle objCircle;    Show_r( objRadius );    cout<<"面積為:"<<objCircle.area(objRadius)<<endl;    return 0;}

C++之:友元類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.