最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ 類(lèi)的友元機(jī)制解讀

 更新時(shí)間:2021年02月20日 16:51:00   作者:流星斬月  
這篇文章主要介紹了C++ 類(lèi)的友元機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下

  下面給出C++類(lèi)的友元機(jī)制說(shuō)明(對(duì)類(lèi)private、protected成員訪問(wèn)),需要注意的是,友元機(jī)制盡量不用或者少用,雖然它會(huì)提供某種程度的效率,但會(huì)帶來(lái)數(shù)據(jù)安全性的問(wèn)題。

類(lèi)的友元

  友元是C++提供的一種破壞數(shù)據(jù)封裝和數(shù)據(jù)隱藏的機(jī)制。

  通過(guò)將一個(gè)模塊聲明為另一個(gè)模塊的友元,一個(gè)模塊能夠引用到另一個(gè)模塊中本是被隱藏的信息??梢允褂糜言瘮?shù)和友元類(lèi)。

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

友元函數(shù)

  友元函數(shù)是在類(lèi)聲明中由關(guān)鍵字friend修飾說(shuō)明的非成員函數(shù),在它的函數(shù)體中能夠通過(guò)對(duì)象名訪問(wèn) private 和protected成員

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

  訪問(wèn)對(duì)象中的成員必須通過(guò)對(duì)象名。

舉例說(shuō)明:使用友元函數(shù)計(jì)算兩點(diǎn)間的距離

#include <iostream>

#include <cmath>

using namespace std;

class Point
{//Point類(lèi)聲明

  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: //私有數(shù)據(jù)成員

    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;

}

友元類(lèi)

  若一個(gè)類(lèi)為另一個(gè)類(lèi)的友元,則此類(lèi)的所有成員都能訪問(wèn)對(duì)方類(lèi)的私有成員。

  聲明語(yǔ)法:將友元類(lèi)名在另一個(gè)類(lèi)中使用friend修飾說(shuō)明。

類(lèi)的友元關(guān)系是單向的

  如果聲明B類(lèi)是A類(lèi)的友元,B類(lèi)的成員函數(shù)就可以訪問(wèn)A類(lèi)的私有和保護(hù)數(shù)據(jù),但A類(lèi)的成員函數(shù)卻不能訪問(wèn)B類(lèi)的私有、保護(hù)數(shù)據(jù)。

以上就是C++ 類(lèi)的友元機(jī)制解讀的詳細(xì)內(nèi)容,更多關(guān)于C++ 類(lèi)的友元機(jī)制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++實(shí)例分析講解臨時(shí)對(duì)象與右值引用的用法

    C++實(shí)例分析講解臨時(shí)對(duì)象與右值引用的用法

    對(duì)性能來(lái)說(shuō),許多的問(wèn)題都需要和出現(xiàn)頻率及本身執(zhí)行一次的開(kāi)銷(xiāo)掛鉤,有些問(wèn)題雖然看似比較開(kāi)銷(xiāo)較大,但是很少會(huì)執(zhí)行到,那也不會(huì)對(duì)程序有大的影響;同樣一個(gè)很小開(kāi)銷(xiāo)的函數(shù)執(zhí)行很頻繁,同樣會(huì)對(duì)程序的執(zhí)行效率有很大影響。本章中作者主要根據(jù)臨時(shí)對(duì)象來(lái)闡述這樣一個(gè)觀點(diǎn)
    2022-08-08
  • C++指針與引用的區(qū)別案例詳解

    C++指針與引用的區(qū)別案例詳解

    這篇文章主要介紹了C++指針與引用的區(qū)別案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 線程池的原理與實(shí)現(xiàn)詳解

    線程池的原理與實(shí)現(xiàn)詳解

    下面利用C語(yǔ)言來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的線程池,為了使得這個(gè)線程池庫(kù)使用起來(lái)更加方便,特在C實(shí)現(xiàn)中加入了一些OO的思想,與Objective-C不同,它僅僅是使用了struct來(lái)模擬了c++中的類(lèi),其實(shí)這種方式在linux內(nèi)核中大量可見(jiàn)
    2013-09-09
  • C/C++實(shí)現(xiàn)全排列算法的示例代碼

    C/C++實(shí)現(xiàn)全排列算法的示例代碼

    本文主要介紹了C/C++實(shí)現(xiàn)全排列算法的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • C++設(shè)計(jì)模式之Proxy模式(代理模式)詳解

    C++設(shè)計(jì)模式之Proxy模式(代理模式)詳解

    這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之Proxy模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 淺析C語(yǔ)言中對(duì)于char*和char[]的理解

    淺析C語(yǔ)言中對(duì)于char*和char[]的理解

    char * s 只是一個(gè)保存字符串首地址的指針變量,char a[]是許多連續(xù)的內(nèi)存單元,單元中的元素是char型,char * 和 char a[]具有相同的效果,源于字符串的本質(zhì),這篇文章主要介紹了C語(yǔ)言中對(duì)于char*和char[]的理解,需要的朋友可以參考下
    2023-02-02
  • 虛函數(shù)與純虛函數(shù)(C++與Java虛函數(shù)的區(qū)別)的深入分析

    虛函數(shù)與純虛函數(shù)(C++與Java虛函數(shù)的區(qū)別)的深入分析

    本篇文章是對(duì)虛函數(shù)與純虛函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C++中的拷貝構(gòu)造函數(shù)詳解

    C++中的拷貝構(gòu)造函數(shù)詳解

    大家好,本篇文章主要講的是C++中的拷貝構(gòu)造函數(shù)詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • 深入C++中構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、賦值操作符、析構(gòu)函數(shù)的調(diào)用過(guò)程總結(jié)

    深入C++中構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、賦值操作符、析構(gòu)函數(shù)的調(diào)用過(guò)程總結(jié)

    本篇文章是對(duì)C++中構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、賦值操作符、析構(gòu)函數(shù)的調(diào)用過(guò)程進(jìn)行了總結(jié)與分析,需要的朋友參考下
    2013-05-05
  • C++ 中將一維數(shù)組轉(zhuǎn)成多維的三種方式示例詳解

    C++ 中將一維數(shù)組轉(zhuǎn)成多維的三種方式示例詳解

    這篇文章主要介紹了C++ 中將一維數(shù)組轉(zhuǎn)成多維的三種方式,每種方式結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12

最新評(píng)論

革吉县| 郁南县| 察雅县| 岗巴县| 阳新县| 温泉县| 宜兴市| 滁州市| 平江县| 岳阳县| 凭祥市| 巴马| 察哈| 香港 | 湖南省| 泰宁县| 武宣县| 沾化县| 兴义市| 察隅县| 西峡县| 湘潭市| 运城市| 清河县| 汉源县| 丹寨县| 平江县| 涿鹿县| 宾川县| 大悟县| 南汇区| 西安市| 宣恩县| 宝应县| 河间市| 广宁县| 彩票| 南郑县| 古蔺县| 利津县| 中超|