码迷,mamicode.com
首页 > 编程语言 > 详细

009_linuxC++之_友元函数

时间:2018-09-22 19:42:02      阅读:208      评论:0      收藏:0      [点我收藏+]

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

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

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

技术分享图片
 1 #include <iostream>
 2 #include <string.h>
 3 #include <unistd.h>
 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<<"("<<x<<", "<<y<<")"<<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 <iostream>
 2 #include <string.h>
 3 #include <unistd.h>
 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<<"("<<x<<", "<<y<<")"<<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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!