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

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;}
http://www.jsqmd.com/news/363277/

相关文章:

  • 制造业提示工程创新:用LLM技术提升工艺设计效率
  • C++之输入输出运算符重载
  • 计算机Java毕设实战-基于微信小程序的私人健康管理系统基于springboot+小程序的智能身心健康管家系统小程序的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • C++之new和delete运算符重载
  • 【课程设计/毕业设计】基于springboot的食品安全管理系统食品安全信息管理系统【附源码、数据库、万字文档】
  • P1314 [NOIP 2011 提高组] 聪明的质监员
  • C++之单目运算符重载
  • C++之双目运算符重载
  • 10款热门AI效率工具对比:基础版与专业版功能差异全解析
  • 【课程设计/毕业设计】基于微信小程序的智能身心健康管家系统健康档案数据基于springboot+小程序的智能身心健康管家系统小程序的设计与实现【附源码、数据库、万字文档】
  • 【中文文档】AN2606_STM32微控制器系统存储器自举模式
  • Java毕设项目:基于springboot+小程序的智能身心健康管家系统小程序的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 特价股票与公司股东积极主义的关联性研究
  • 2026优质空压机厂家推荐:阿特拉斯/博莱特/富达/博莱特/变频/螺杆/离心式/无油空压机保养维修及租赁服务,北京易德盛世凭专业实力登顶五星 - 海棠依旧大
  • 专业版VS基础版:10款AI效率加速器的功能差异深度解析
  • 机房IP和住宅IP有什么区别?
  • 基础版与专业版对比:10款热门AI效率工具的核心功能差异解析
  • 2026.1.29总结
  • 从零学习Kafka:数据存储
  • 计算机的核心:抽象与共性
  • AI效率加速器基础版VS专业版:10款热门工具功能差异详解
  • 2026.1.28总结
  • 2026年蜂窝板生产厂家厂家最新推荐:隐框蜂窝板、OPPR封边蜂窝板、蜂窝板供应厂家、蜂窝板公司、蜂窝板品牌选择指南 - 优质品牌商家
  • 【计算机毕业设计案例】基于springboot的食品安全管理系统基于SpringBoot的在线食品安全信息平台(程序+文档+讲解+定制)
  • Java毕设项目推荐-基于SpringBoot开发的掌上个人健康管理系统设计与实现基于SpringBoot健康管理小程序的设计与实现【附源码+文档,调试定制服务】
  • 【计算机毕业设计案例】基于SpringBoot开发的掌上个人健康管理系统设计与实现基于springboot+小程序的智能身心健康管家系统小程序的设计与实现(程序+文档+讲解+定制)
  • 工厂人员精准定位:技术落地入门刚需指南(包括核心痛点、技术逻辑、产品亮点)
  • Linux从入门到进阶 第三章
  • 【大模型】读代码:mini_qwen_pt.py qwen模型预训练代码
  • 恒等变换概念暴露初等数学2300年重大错误:将无穷多前所未知的射线误为熟悉的射线