C++中類的友元機制是什么-創(chuàng)新互聯(lián)

這篇文章主要為大家詳細介紹了C++中類的友元機制是什么,文中示例代碼介紹的非常詳細,具有一定的參考價值,發(fā)現的小伙伴們可以參考一下:

創(chuàng)新互聯(lián)建站成立于2013年,我們提供高端成都網站建設、重慶網站制作、成都網站設計、網站定制、成都全網營銷推廣成都小程序開發(fā)、微信公眾號開發(fā)、成都網站營銷服務,提供專業(yè)營銷思路、內容策劃、視覺設計、程序開發(fā)來完成項目落地,為門窗定制企業(yè)提供源源不斷的流量和訂單咨詢。

類的友元


友元是C++提供的一種破壞數據封裝和數據隱藏的機制。

通過將一個模塊聲明為另一個模塊的友元,一個模塊能夠引用到另一個模塊中本是被隱藏的信息??梢允褂糜言瘮岛陀言?。

為了確保數據的完整性,及數據封裝與隱藏的原則,建議盡量不使用或少使用友元。

友元函數

友元函數是在類聲明中由關鍵字friend修飾說明的非成員函數,在它的函數體中能夠通過對象名訪問 private 和protected成員

作用:增加靈活性,使程序員可以在封裝和快速性方面做合理選擇。

訪問對象中的成員必須通過對象名。

舉例說明:使用友元函數計算兩點間的距離

#include <iostream>

#include <cmath>

using namespace std;

class Point
{//Point類聲明

  public: //外部接口

    Point(int x=0, int y=0) : x(x), y(y) { }

    int getX() { return x; }

    int getY() { return y; }

    friend float dist(Point &a, Point &b);

  private: //私有數據成員

    int x, y;

};

float dist( Point& a, Point& b)
{
  double x = a.x - b.x;

  double y = a.y - b.y;

  return static_cast<float>(sqrt(x * x + y * y));

}

int main()
{

  Point p1(1, 1), p2(4, 5);

  cout <<"The distance is: ";

  cout << dist(p1, p2) << endl;

  return 0;

}

友元類

若一個類為另一個類的友元,則此類的所有成員都能訪問對方類的私有成員。

聲明語法:將友元類名在另一個類中使用friend修飾說明。

C++中類的友元機制是什么

類的友元關系是單向的

如果聲明B類是A類的友元,B類的成員函數就可以訪問A類的私有和保護數據,但A類的成員函數卻不能訪問B類的私有、保護數據。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)網站建設公司,。

分享題目:C++中類的友元機制是什么-創(chuàng)新互聯(lián)
轉載來源:http://muchs.cn/article0/ejpoo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供商城網站、網站改版、網站營銷網頁設計公司、用戶體驗、App設計

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設