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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

friend之友元函数和友元类

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 friend之友元函数和友元类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// friend_func.cpp : Defines the entry point for the console application. 寫一個函數求兩個點的中點 //友元函數可以訪問類的私有成員,但友元函數不是類的成員函數 /*#include "stdafx.h" #include <iostream> #include<stdlib.h> using namespace std;class Point {friend Point middle(const Point& p1, const Point &p2);public:Point(float a,float b);~Point();void print(){cout << "x= " << x << ", y= " << y << endl;}float get_X(){return x;}float get_Y(){return y;} private:float x, y; };Point::Point(float a, float b):x(a),y(b) { }Point::~Point() { } Point middle(const Point& p1, const Point &p2) {Point mid_point((p1.x + p2.x) / 2, (p1.y+ p2.y) / 2);//訪問私有成員,不被允許return mid_point; } int main() {Point p(1, 3);Point q(1, 5);middle(p, q).print();system("pause");return 0; }*/ //友元類 #include "stdafx.h" #include <iostream> #include<stdlib.h> using namespace std;class Circle;//前向聲明,表示有一個類為Circle,但此時編譯器并不知道該類的具體聲明和實現 class Point { public:Point();Point(float a, float b);~Point();void print()const;friend class Circle;//聲明友元類,Circle類中的所有函數均可以訪問私有變量x,y//友元函數不受訪問屬性限制,因此無論放在public和private中均可以friend const Point middle(const Point& u, const Point& v);//聲明友元函數private:float x, y; };Point::Point() :x(0), y(0) {cout << "Default Constructor is called!"; } Point::Point(float a, float b) :x(a), y(b) { } Point::~Point() { } //middle是友元函數,不是成員函數 const Point middle(const Point& u, const Point& v) {Point mid_point((u.x+v.x)/2.0,(u.y+v.y)/2.0);return mid_point; } void Point::print()const {cout << "(" << x << " , " << y <<")"<< endl; } //############################################################### class Circle { public:Circle();~Circle();Circle& move(float a, float b);void print() const ;private:float radius;Point center; };Circle::Circle():radius(0.0f) {center.x = 0.0f;center.y = 0.0f; }Circle::~Circle() { } Circle& Circle::move(float a, float b) {center.x += a;center.y += b;return *this; } void Circle::print()const {center.print();//打印圓心,Center是point類cout << "radius = " << radius << endl; }int main() {Point p1(1.0, 2.0);Point p2(3.0, 4.0);cout << "第一個點:";p1.print();cout << "第二個點:";p2.print();cout << "兩個點的中點是:";middle(p1, p2).print();Circle c;c.print();cout << "移動圓心: ";c.move(10.0, 10.0);c.print();system("pause");return 0; }

總結

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

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