C++_重载矩阵的部分运算符

  • 前言
  • 正文
    • 运行结果
  • 结尾

前言

博主本人为C++菜鸟一只,本篇博客也是第一次写,主要目的用于自己mark,如有错误欢迎指出

本博客代码为我做C++实验时的代码,由于自己是菜鸟,所以代码内容掌握的也不是很熟。
在此记下此篇,待到日后查看也是属于自己青春的一部分吧。

正文

整个工程分为头文件,source,以及main构成。
工程的目的为实现对矩阵运算符‘+’,‘-’,‘*’,‘==’,‘!=’,‘<<’和‘>>’的重载,并在main中测试其情况。

以下为头文件

//Matrix.h
#ifndef MATRIX_H
#define MATRIX_H#include <iostream>
using namespace std;
class Matrix
{public:Matrix operator + (Matrix&a);//重载 +Matrix operator - (Matrix&b);//重载 -Matrix operator * (Matrix&c);//重载 *bool operator == (Matrix&d);//重载 ==bool operator != (Matrix&e);//重载 !=friend ostream& operator << (ostream&,Matrix&);//重载 <<friend istream& operator>>(istream&,Matrix&);//重载 >>void setMatrix(int a, int b);//设置矩阵行列
private:int row;int col;int matrix[200][200];
};
#endif

关于 void setMatrix(int a, int b); 其实这个函数可以不设置,利用构造函数可以完成该功能,甚至更完美。但我有些小懒,就不想去修改了,如果出事的话…QAQ还是希望不会出事吧。
还有就是,矩阵我设置成了200*200,其实可以利用new调用动态内存来更好的实现,但由于我太菜,不想去用二重指针,故放弃了这个方案。

以下为cpp文件

//Matrix.cpp
#include <iostream>
#include "Matrix.h"using namespace std;void Matrix::setMatrix(int a, int b)//构造函数可以取代这个
{row=a;col=b;
}Matrix Matrix::operator + (Matrix &a)//重载 +
{if (row!=a.row||col!=a.col){throw"这两个矩阵不可相加";}

抛出异常,之所以使用这个,是因为没法cout<<“错误”;之后return 0强制退出,因为返回类型是矩阵,我当时没有尝试利用exit()函数…(果然我太菜了QAQ)

    else//矩阵元素相加{Matrix sum;//创建新矩阵,为接下来返回矩阵用sum.row=row;sum.col=col;for(int i=

C++_重载矩阵的部分运算符相关推荐

  1. C++_类和对象_C++运算符重载_函数调用运算符重载_---C++语言工作笔记060

    然后我们再来看函数调用运算符重载, 其实这个,重载后的,函数调用运算符有点像,仿函数,什么是仿函数,一会我们再说 我们去写一个MyPrint类 里面重载函数调用运算符,可以看到函数调用运算符的重载的写 ...

  2. C++_类和对象_C++运算符重载_递增运算符重载_重载++运算符_前置++_后置++重载---C++语言工作笔记057

    然后我们再来看这个递增运算符的重载. 我们知道,递增运算符,有前置++,和后置++,可以看到,上面写了 然后我们这次就自己定义一个int的类型,MyInteger,然后实现,递增,递减的操作. 首先我 ...

  3. C++_重载new,delete

    C++_重载new,delete 这里重载的是new三步delete两步里的第一步操作,这点一定要注意,所以下面出现size可以直接malloc,可以看以前笔记 new表达式(new).operato ...

  4. C++:运算符重载函数之成员运算符重载函数

    5.2.3 成员运算符重载函数 在C++中可以把运算符重载函数定义为某个类的成员函数,称之为成员运算符重载函数. 1. 定义成员运算符重载函数的语法形式 (1)在类的内部,定义成员运算符重载函数的格式 ...

  5. 运算符重载(加减运算符、前置加加(减减)后置加加(减减)运算符、赋值运算符、输入输出运算符、关系运算符、函数调用)

    编译器对于一个类会默认生成以几种函数: 1.默认构造函数(空形参,空函数体) 2.默认拷贝构造函数(浅拷贝,也叫值拷贝.字节拷贝) 3.析构函数(空形参,空函数体.析构函数要求形参列表必须是空的,所以 ...

  6. Python基础_第2章_Python运算符与if结构

    Python基础_第2章_Python运算符与if结构 文章目录 Python基础_第2章_Python运算符与if结构 Day02之`Python运算符与if结构` 一.昨日回顾 1.回顾昨天的课程 ...

  7. python判断两个对象是否为相等使用的运算符是_Python入门_浅谈逻辑判断与运算符...

    这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...

  8. [YTU]_2640( 编程题:运算符重载---矩阵求和)

    题目描述 /* 有两个矩阵a和b,均为2行3列.求两个矩阵之和. 重载运算符"+",使之能用于矩阵相加(如c=a+b). 重载流插入运算符"<<"和 ...

  9. [YTU]_2640(编程题:运算符重载---矩阵求和)

    题目描述 /* 有两个矩阵a和b,均为2行3列.求两个矩阵之和. 重载运算符"+",使之能用于矩阵相加(如c=a+b). 重载流插入运算符"<<"和 ...

最新文章

  1. 漫长的数据中心绿化之路到底该如何走www.shzhenai.com
  2. 在 ASP.NET Core 中集成 Skywalking APM
  3. 如何成为优秀的科学家
  4. Linux 下编译安装OpenCV【转】
  5. Android提供了哪些主要UI控件,Android必备:Android UI控件的了解与学习
  6. mysql索引的创建和删除吗_MySQL索引的创建、删除和查看
  7. linux、unix中的批量文件重命名
  8. arduino编码器计数_【Arduino】旋转编码器的Arduino使用方法
  9. qq互联登录授权php配置,开通qq互联开放平台登陆功能的步骤
  10. 军火库(第一期):无线电硬件安全大牛都用哪些利器?
  11. EndNote设置自动导入文献
  12. Flutter从入门到能寄几玩儿
  13. mysql implode_PHP implode() 函数
  14. flask爱家租房项目开发(十)
  15. 快速排序(随机主元)、随机数生成和随机选择算法
  16. trove mysql 镜像_centos7下手动制作trove镜像
  17. 开始暂停按钮实现图片随机切换并显示在指定图像框内
  18. 扫二维码 下载app
  19. Python数据分析【第11天】| DataFrame转化格式并保存(to_excel(),to_json(),to_csv())
  20. Excel中VLOOKUP函数简易使用——精确匹配或近似匹配数据

热门文章

  1. 多表关联查询两种方法
  2. html5 offsetx,event对象中offsetX,clientX,pageX,screenX的区别
  3. Naive ui主题色修改
  4. 曾国藩六戒—送给自己的未来人生
  5. 12.14补卡,多重背包二进制优化
  6. Unicode字碼分佈表(zz)
  7. 【闭包】JS的闭包到底是什么
  8. HEVC之NALU格式
  9. 【报告分享】2021-2022跨境出口电商增长白皮书-魔客学院(附下载)
  10. gitee下载老干爹,新曾碰到拦截器和字段要注意的,老干爹碰到坑