当前位置:   article > 正文

c 语言友元函数重载,C++友元函数重载"++"和"--"运算符

友元函数重载运算符++,调用方式为

代码:

#include

#include

using namespace std;

class one{

public:

one(int i);

void print();

friend one operator++(one&);

friend one operator++(one&,int);

private:

int i;

};

one::one(int I){

i = I;

}

void one::print(){

cout<

}

one operator++(one &op){

++op.i;

return op;

}

one operator++(one &op,int){

one temp(op);

op.i++;

return temp;

}

int main(){

one obj1(),obj2();

obj1.print();

(++obj1).print();//隐式调用

(obj1++).print();

obj1.print();

(operator++(obj2)).print();//显式调用

(operator++(obj2,)).print();//此处的参数1可以取任意整数(int)

obj2.print();

return ;

}

输出:

i=1

i=2

i=2

i=3

i=101

i=101

i=102

分析:

前缀方式和后缀方式重载函数不同,以参数int区分

C++重载(主要介绍使用友元函数重载)

重载限制 多数C++运算符都可以用下面的方式重载.重载的运算符不必是成员函数,但必须至少有一个操作数是用户自定义的类型.下面详细介绍C++对用户定义的运算符重载的限制. 1 重载后的运算符必须至少有一 ...

C++基础——运算符重载友元函数示例

一.前言 其实本人学习C++的目的,只是为了体会OOP设计思想,并为利用System Verilog验证复杂设计做准备.如果想要真正做点软件方面项目级的东西,还需要掌握其他高级语言和库.框架等知识.因 ...

C++运算符重载三种形式(成员函数,友元函数,普通函数)详解

首先,介绍三种重载方式: //作为成员函数重载(常见) class Person{ Private: string name; int age; public: Person(const char* ...

C++ 学习笔记(五)类的知识小结一(重载,友元函数,静态成员,new)

---恢复内容开始--- 学习C++类知识点还是挺多的,每个知识点学习的时候都觉得这个知识点咋那么多东西,其实真学完了再回头看好像也就那么点.这次用程序写一个黑猫揍白猫的故事总结一下这段时间学习的零碎 ...

c/c++赋值函数(重载=号运算符)

c/c++赋值函数(重载=号运算符) 首先c++里的各种运算符都是用函数实现的,比如=,就等号函数. 所以当用=给一个对象赋值的时候,实际调用的是=号所对应的=号函数. 分析下面的代码 #includ ...

C++之友元函数

1.为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率 具体来说:为了使其他类的成员函数直接访问该类的私有变量 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同 ...

C++_友元函数

1.为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率       具体来说:为了使其他类的成员函数直接访问该类的私有变量       即:允许外面的类或函数去访问类的私有变量和保护 ...

类模板语法知识体系梳理(包含大量常犯错误demo,尤其滥用友元函数的错误)

demo 1 #include #include using namespace std; //template

随机推荐

Colorado Potato Beetle(CF的某道) &; 鬼畜宽搜

题意: 一个人在一张大图上走,给你路径与起点,求他走出的矩形面积并.(大概这个意思自行百度标题... SOL: 与其说这是一道图论题不如说是一道生动活泼的STL-vector教学.... 离散化宽搜, ...

通过定位position=";fixed";实现网页内容的固定层效果

在网页的顶部或者底部导航栏中经常需要使用到固定层的效果,即紧挨浏览器窗口的顶部或底部而网页其他内容的影响. 一.实现 主要通过设置导航栏元素的位置属性position="fixed" ...

20150604_Andriod 窗体PopupWindow

package com.example.test1; import android.support.v7.app.ActionBarActivity;import android.os.Bundle; ...

tomcat 调优

1 总是遇到read time out ,socket什么的          

Oracle中的job(转载)

我们在项目开发中,常常会有一些复杂的业务逻辑.使用oracle的存储过程,可以大大减少java程序代码的编写工作量,而且存储过程执行在数据库上,这样可以利用oracle的良好性能支持,极大地提高程序执 ...

PHP 7.0 安装使用与性能监测!

PHP 7.0发布,网上关于新版的介绍很多,介于 7.0 在正式发布之前已经发过若干个 Beta.8个 RC,应该不会出现重大问题.今日我将一台机器升级至 PHP 7.0 并将有关信息记录如下. 本人 ...

windows phone (21) Grid元素的Background和Clip

原文:windows phone (21) Grid元素的Background和Clip Grid是唯一可以在内部定制单元格的panel类,我们可以在grid中定制单元格,然后通过grid.row和g ...

有向图强连通分支的Tarjan算法讲解 + HDU 1269 连通图 Tarjan 结题报告

题目很简单就拿着这道题简单说说 有向图强连通分支的Tarjan算法 有向图强连通分支的Tarjan算法伪代码如下:void Tarjan(u) {dfn[u]=low[u]=++index//进行DF ...

如何让vue自定义组件可以包裹内容,并且渲染出来,以及组件的组合使用

当我们用vue一开始写项目时,按需求文档自定义了一个公用组件,这个组件很多地方都用到了,然后随着项目的推进,又有了新的需求要在里面加东西,但又不是所有的地方都要加 这时候我们想这样往里面塞内容↓    ...

tornado之用户验证装饰器

authenticated装饰器 为了使用Tornado的认证功能,我们需要对登录用户标记具体的处理函数.我们可以使用@tornado.web.authenticated装饰器完成它.当我们使用这个装 ...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/52690
推荐阅读
相关标签
  

闽ICP备14008679号