009_linuxC++之_友元函数

2021-06-19 08:05

阅读:547

标签:原因   用友   display   info   vat   函数   style   pac   string   

(一)定义:友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)。

(二)使用非友元函数将两个对象中的变量进行相加

技术分享图片技术分享图片
 1 #include  2 #include string.h>
 3 #include  4 
 5 using namespace std;
 6 
 7 class Point {
 8 private:
 9     int x;
10     int y;
11 
12 public:
13     Point() {}
14     Point(int x, int y) : x(x), y(y) {}
15 
16     int getX(){ return x; }
17     int getY(){ return y; }
18     void setX(int x){ this->x = x; }
19     void setY(int y){ this->y = y; }
20     void printInfo()
21     {
22         cout"("", "")"endl;
23     }
24 };
25 
26 Point add(Point &p1, Point &p2)
27 {
28     Point n;
29     n.setX(p1.getX()+p2.getX());
30     n.setY(p1.getY()+p2.getY());
31     return n;
32 }
33 
34 int main(int argc, char **argv)
35 {
36     Point p1(1, 2);
37     Point p2(2, 3);
38 
39     Point sum = add(p1, p2);
40     sum.printInfo();
41 
42     return 0;
43 }
View Code

(三)使用友元函数进行两个对象中变量的相加

技术分享图片技术分享图片
 1 #include  2 #include string.h>
 3 #include  4 
 5 using namespace std;
 6 
 7 class Point {
 8 private:
 9     int x;
10     int y;
11 
12 public:
13     Point() {}
14     Point(int x, int y) : x(x), y(y) {}
15 
16     int getX(){ return x; }
17     int getY(){ return y; }
18     void setX(int x){ this->x = x; }
19     void setY(int y){ this->y = y; }
20     void printInfo()
21     {
22         cout"("", "")"endl;
23     }
24     friend Point add(Point &p1, Point &p2);
25 };
26 
27 Point add(Point &p1, Point &p2)
28 {
29     Point n;
30     n.x = p1.x+p2.x;
31     n.y = p1.y+p2.y;
32     return n;
33 }
34 
35 int main(int argc, char **argv)
36 {
37     Point p1(1, 2);
38     Point p2(2, 3);
39 
40     Point sum = add(p1, p2);
41     sum.printInfo();
42 
43     return 0;
44 }
View Code

 

009_linuxC++之_友元函数

标签:原因   用友   display   info   vat   函数   style   pac   string   

原文地址:https://www.cnblogs.com/luxiaoguogege/p/9690674.html

上一篇:Python 单例模式

下一篇:Python中MRO


评论


亲,登录后才可以留言!