news 2026/4/16 13:39:29

C++之运算符重载案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++之运算符重载案例
  • 不是所有的操作符都能重载,下面操作符不能重载
::.?:sizeoftypeid
  • 实现一个3*3的矩阵类,支持如下操作符:
    • 运算类双目操作符:+ - *
    • 赋值类双目操作符:+= -= *=
    • 单目操作符:-(相反数)
    • 输出操作符:<<
#include<iostream>usingnamespacestd;classMat33{private:intm_a[3][3];public:Mat33(void){for(inti=0;i<3;i++){for(intj=0;j<3;j++){m_a[i][j]=0;}}}Mat33(inta[][3]){for(inti=0;i<3;i++){for(intj=0;j<3;j++){m_a[i][j]=a[i][j];}}}// + a+bconstMat33operator+(constMat33&m)const{inta[3][3]={0};for(inti=0;i<3;i++){for(intj=0;j<3;j++){a[i][j]=m_a[i][j]+m.m_a[i][j];}}Mat33result(a);returnresult;}// - a-bconstMat33operator-(constMat33&m)const{inta[3][3]={0};for(inti=0;i<3;i++){for(intj=0;j<3;j++){a[i][j]=m_a[i][j]-m.m_a[i][j];}}Mat33result(a);returnresult;}// * a*bconstMat33operator*(constMat33&m)const{inta[3][3]={0};for(inti=0;i<3;i++){for(intj=0;j<3;j++){for(intk=0;k<3;k++){a[i][j]+=m_a[i][k]*m.m_a[k][j];}}}Mat33result(a);returnresult;}// += a += b;Mat33&operator+=(constMat33&m){*this=*this+m;// operator+return*this;}// -= a -= b;Mat33&operator-=(constMat33&m){*this=*this-m;// operator-(m)return*this;}// *= a *= b;Mat33&operator*=(constMat33&m){*this=*this*m;// operator*return*this;}//-(取负) -a;constMat33operator-(void)const{Mat33 m;returnm-*this;// operator-(m)}/* * os << a; * */friendostream&operator<<(ostream&os,constMat33&m){for(inti=0;i<3;i++){for(intj=0;j<3;j++){os<<m.m_a[i][j]<<" ";}cout<<endl;}returnos;}};intmain(void){inta1[3][3]={1,2,3,4,5,6,7,8,9};inta2[3][3]={9,8,7,6,5,4,3,2,1};Mat33m1(a1);Mat33m2(a2);cout<<m1<<endl;cout<<m2<<endl;cout<<"m1+m2: "<<endl;cout<<m1+m2<<endl;cout<<"m1-m2: "<<endl;cout<<m1-m2<<endl;cout<<"m1*m2: "<<endl;cout<<m1*m2<<endl;cout<<"m1 += m2: "<<endl;cout<<(m1+=m2)<<endl;cout<<"m1 -= m2: "<<endl;cout<<(m1-=m2)<<endl;cout<<"m1 *= m2: "<<endl;cout<<(m1*=m2)<<endl;cout<<"-m2"<<endl;cout<<-m2<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:00:38

Java毕设项目推荐-基于SpringBoot+Vue食品安全信息管理系统设计和实现基于springboot的食品安全管理系统【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/16 10:58:32

从基础到专业:10款热门AI效率加速器的功能升级对比

&#xfffd;&#xfffd; 10大降AIGC平台核心对比速览 排名 工具名称 降AIGC效率 适用场景 免费/付费 1 askpaper ⭐⭐⭐⭐⭐ 学术论文精准降AI 付费 2 秒篇 ⭐⭐⭐⭐⭐ 快速降AIGC降重 付费 3 Aibiye ⭐⭐⭐⭐ 多学科论文降AI 付费 4 Aicheck ⭐⭐⭐⭐…

作者头像 李华
网站建设 2026/4/16 12:13:03

读一下FLOPs的计算以及参数量公式+推导逻辑

原文&#xff1a;FLOPs&#xff08;Floating-point operations&#xff09;是浮点计算量的简称[17]&#xff0c;通常使用 FLOPs 来表示模型的计算复杂度。将一个输入通道数为&#x1d436;&#x1d456;&#x1d45b;&#xff0c;输出通道数为&#x1d436;&#x1d45c;&#…

作者头像 李华
网站建设 2026/4/16 11:09:33

Java计算机毕设之基于springboot的医院后勤采购管理系统基于springboot的医院资源管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/15 14:34:32

Go语言标准库与工程化能力:开箱即用的生产力

Go语言最被低估的优势不是语法&#xff0c;也不是性能&#xff0c;而是标准库的深度与工具链的完备性。它让开发者从「环境配置」「依赖地狱」「格式争议」这些工程化琐事中彻底解放&#xff0c;专注于业务逻辑本身。本文深入剖析 Go 的网络编程标准库、一体化工具链&#xff0…

作者头像 李华