当前位置: 首页 > news >正文

c++ 二元运算符重载, 以加法为例

/*
 * c++ 二元运算符重载, 以加法为例
 */
#include <stdio.h>

class Complex
{
public:
    int r=0; // real, 实部
    int v=0; //virtual, 虚部
};
// 重载加法+ 操作符
// 可见,c++2元运算符,取其左侧为第一参数,右侧为第二参数
// 返回值可以付给新的变量
Complex operator+(Complex c1, Complex c2)
{
    Complex c;
    c.r = c1.r + c2.r;
    c.v = c1.v + c2.v;
    return c;
}

Complex hexout(Complex c)
{
    printf("r:0x%x,v:0x%x\n",c.r,c.v);
    return c;
}
int main()
{
    Complex obj1,obj2,obj3;
    obj1.r = 1;
    obj1.v = 11;
    obj2.r = 2;
    obj2.v = 22;
    obj3 = obj1 + obj2;
    printf("obj3.r:%d, obj3.v:%d\n",obj3.r, obj3.v);
    obj3 = obj1 + hexout(obj2);
    return 0;
}

/* 执行结果
$ ./test_add
obj3.r:3, obj3.v:33
r:0x2,v:0x16
*/

http://www.lryc.cn/news/174259.html

相关文章:

  • 基于 SpringBoot+Vue的电影影城管理系统,附源码,数据库
  • Docker实战技巧(二):Kubernetes基础操作实战
  • 计算机视觉与深度学习-循环神经网络与注意力机制-Attention(注意力机制)-【北邮鲁鹏】
  • Centos7安装wps无法打开及字体缺失的问题解决
  • 华为OD机试真题-会议接待-2023年OD统一考试(B卷)
  • mysql explain学习记录
  • 电压放大电路的作用有哪些(电压放大器)
  • 编译opencv-3.4.5 [交叉编译]
  • Canal 实现MySQL与Elasticsearch7数据同步
  • 网络安全攻防对抗之隐藏通信隧道技术整理
  • 读书笔记:多Transformer的双向编码器表示法(Bert)-2
  • Python 基于PyCharm断点调试
  • spring security auth2.0实现
  • MySQL(6)LOCK和MVCC
  • 最新IDE流行度最新排名(每月更新)
  • I2C的上拉电阻如何计算?
  • Centos下安装 oracle11g 博客2
  • 记一次逆向某医院挂号软件的经历
  • Canal实现Mysql数据同步至Redis、Elasticsearch
  • Kafka的消息传递保证和一致性
  • Docker 部署 Firefly III 服务
  • 配置OSPFv3基本功能 华为笔记
  • 【AI视野·今日Sound 声学论文速览 第九期】Thu, 21 Sep 2023
  • 数据结构-----堆(完全二叉树)
  • set/multiset容器、map容器
  • Linux系统编程——总结初识Linux(常用命令、特点、常见操作系统)
  • Js使用ffmpeg进行视频剪辑和画面截取
  • Linux基本命令,基础知识
  • 【Android知识笔记】进程通信(三)
  • 云上亚运:所使用的高新技术,你知道吗?