news 2026/5/1 5:09:50

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/5/1 5:09:27

计算机Java毕设实战-基于springboot的食品安全管理系统基于springboot+vue的食品安全管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

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

作者头像 李华
网站建设 2026/4/8 19:35:58

【计算机毕业设计案例】基于java+springboot+vue+mysql的高校办公室行政事务管理系统设计与实现(程序+文档+讲解+定制)

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

作者头像 李华
网站建设 2026/4/29 17:45:18

数据库巡检进入智能时代:异常检测算法的落地实践

一、为什么传统巡检不够用&#xff1f; 传统的巡检系统都是基于固定阈值来判定指标是否异常&#xff0c;一般为了防止产生过多的指标异常信息&#xff0c;这种阈值设置的都偏高。虽然这种方式也能发现异常&#xff0c;但是场景过于单一&#xff0c;无法感知指标的动态变化&…

作者头像 李华
网站建设 2026/4/25 23:39:04

学术写作智能化:6款前沿AI工具大幅提升论文质量与产出效率

在学术写作领域&#xff0c;基于先进自然语言处理技术的人工智能工具已实现论文结构智能生成、语言优化及查重检测等核心功能&#xff0c;尤其适用于研究生论文撰写与学术资料处理场景。需要强调的是&#xff0c;这类智能化平台仅作为科研效率的辅助工具&#xff0c;研究者必须…

作者头像 李华
网站建设 2026/4/26 14:11:07

【毕业设计】基于springboot+小程序的智慧心理健康自助平台小程序的设计与实现(源码+文档+远程调试,全bao定制等)

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

作者头像 李华