日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中友元函数,友元类数详解

發布時間:2025/3/11 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中友元函数,友元类数详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++控制對類對象私有部分的訪問,為了適應的編程問題,所以在C++中提供了特定的訪問權限:友元。

友元分為3中即:

? ? ?1:友元函數;

? ? ? 2:友元類:

? ? ? 3:友元成員函數。

一、友元函數

定義:有一類特殊的非成員函數可以訪問類的私有成員,它們被稱為友元函數:

class Time{ public: friend Time operator *(double m,const Time & t)//需要先在類中定義 } Time operator *(double m,const Time & t) //定義完后在后面寫友元函數,即先定義后寫函數 {}

二、友元類

定義:A是B的友元類,A的成員函數可以訪問B的私有成員

#include <iostream> using namespace std; class Rectangle;//類聲明 class Circle;//類聲明 void show(Circle &,Rectangle &);//獨立函數原型聲明class Rectangle{ private:double length;double width; public:friend void show(Circle &,Rectangle &);//友元函數聲明friend class Circle;//友元類聲明Rectangle(int l,int w){length=l;width=w;}void show(){cout<<"矩形對象輸出:"<<length<<","<<width<<endl;}void showCir(Circle &);//為什么聲明和定義要分開寫?//因為,函數體中的Circle對象此時不存在,要Circle定義后才有。//所以,定義部分要放在Circle類的定義之后。};class Circle{ private:double radius; public:friend class Rectangle;//友元類聲明friend void show(Circle &,Rectangle &);//友元函數聲明(原型聲明)Circle(double r){radius=r;}void show(){cout<<"圓對象輸出:"<<radius<<endl;}void showRec(Rectangle &r)//想想這個函數的聲明和定義為什么不用分開寫!!!{cout<<"在圓對象成員函數中訪問矩形對象的私有成員:"<<r.length<<","<<r.width<<endl;} };void Rectangle::showCir(Circle &c) {cout<<"矩形對象成員函數中訪問圓的私有成員:"<<c.radius<<endl; } void show(Circle &c,Rectangle &r) {cout<<"獨行函數輸出:"<<":"<<c.radius<<","<<r.length<<","<<r.width<<endl; }void main() {Circle c(5.0);//定義圓對象Rectangle r(10,20);//定義矩形類對象//要區分下面每個函數調用的意義和功能。c.show();r.show();show(c,r);//獨立函數訪問Circle,Rectangle類對象的私有成員radius,length,widthc.showRec(r);r.showCir(c);}

總結:

1:友元類之間的關系不能傳遞,不能繼承

2:友元關系是單向的,不具有交換性。若類B是類A的友元,類A不一定是類B的友元,要看在類中是否有相應的聲明。

3:友元關系不具有傳遞性。若類B是類A的友元,類C是B的友元,類C不一定是類A的友元,同樣要看類中是否有相應的申明。

總結

以上是生活随笔為你收集整理的C++中友元函数,友元类数详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。