首页 > c++中的友元重载

c++中的友元重载

1 语法

  返回值类型 operator 运算符名称(形参列表)

  {

      重载实体

  }

--------->operator和运算符名称在一起构造成新的函数名

2 案例

 1 #include 
 2 
 3 using namespace std;
 4 
 5 class Complex
 6 {
 7 public:
 8     
 9     Complex(float x=0,float y=0)
10         :_x(x),_y(y){
11         
12         cout <<"进入构造函数"  << endl;
13         
14     }
15     void dis()
16     {
17         cout << "(" << _x << "," << _y << ")" << endl;
18     }
19     friend const Complex operator+(const Complex &c1, const Complex &c2);
20 private:
21     float _x;
22     float _y;
23 };
24 
25 const Complex operator+(const Complex &c1, const Complex &c2)
26 {
27     return Complex(c1._x + c2._x, c1._y + c2._y);
28 }
29 
30 int main()
31 {
32     Complex c1(2, 3);
33     Complex c2(3, 4);
34     c1.dis();
35     c2.dis();
36 
37     Complex c3 = c1 + c2;//通过在这里打断点你会发现会进入重载函数然后调用构造进行初始化
38     c3.dis();
39     cin.get();
40 }

3 截图

 

转载于:https://www.cnblogs.com/lanjianhappy/p/7295703.html

更多相关:

  • mutable的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。   在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。   我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成cons...

  • 前言:很多人都把const int * 、int * const、int const* 的区别和联系搞混,我自己在学习C++的过程中,也经常性          弄不 清楚,今天特意总结一下,作为学习笔记记录下来。 一,const修饰符用于指针         将const用于指针有些很微妙的地方,有两种不同的方式将const关键...

  •   注意,前情提示: 本代码基于《Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)》 传送门Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)_你挚爱的强哥❤给你发来1条消息❤-CSDN博客   在/api/demo/文件夹下面创建exportAndDownl...

  • 项目结构 main.js(入口文件,开启9999端口监听,实现RESTful风格接口访问) const express = require("express"); const app = express(); const port = 9999;//设置端口号,如果端口号被占用需要自己修改,否则无法跑起来(建议不要用80和80...

  • ES6 你可能不知道的事 – 基础篇 转载 作者:淘宝前端团队(FED)- 化辰 链接:taobaofed.org/blog/2016/07/22/es6-basics/   序   ES6,或许应该叫 ES2015(2015 年 6 月正式发布),对于大多数前端同学都不陌生。   首先这篇文章不是工具书,不会去过多谈概念,而是...

  • union { float data[4]; struct { float x; float y; float z; }; };...

  • 在立方体贴图空间内发射光线(视线),计算球面光线(视线)会击中哪个面的哪个像素的像素值,最终生成Equirectangular全景图。 InitSceneTexture():先获取Cubemaps并将其绑定在GPU中 void InitSceneTexture() {char* path = "./Cubemaps";myEnvi...

  • 对于同一场景的2D全景图,如果想改变其视野中心位置,比如下图,初始情况下视野的中心位置是蓝框,如果想让红框的灯位于中心位置该怎么做呢? #include "opencv2/highgui/highgui.hpp" #include "opencv2/opencv.hpp" #include

  • 常量内存是NVIDIA提供的一个64KB大小的内存空间,它的处理方式和普通的全局内存和共享内存都不一样,是有cuda专门提供的。 线程束的概念:线程束是指一个包含32个线程的集合,在程序中的每一行,线程束中的每个线程都将在不同的数据上执行相同的指令。 因此,常量内存的作用是,能够将单次内存的读取操作广播到每个半线程束(即16个线程...

  •         1、初始化,设置背景色          void glClear(int mask)    清除缓存          实參含义:GL10.GL_COLOR_BUFFER_BIT 清除颜色缓存                        GL10.GL_DEPTH_BUFFER_BIT  清除深度缓存      ...