C++_重载矩阵的部分运算符
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++_重载矩阵的部分运算符相关推荐
- C++_类和对象_C++运算符重载_函数调用运算符重载_---C++语言工作笔记060
然后我们再来看函数调用运算符重载, 其实这个,重载后的,函数调用运算符有点像,仿函数,什么是仿函数,一会我们再说 我们去写一个MyPrint类 里面重载函数调用运算符,可以看到函数调用运算符的重载的写 ...
- C++_类和对象_C++运算符重载_递增运算符重载_重载++运算符_前置++_后置++重载---C++语言工作笔记057
然后我们再来看这个递增运算符的重载. 我们知道,递增运算符,有前置++,和后置++,可以看到,上面写了 然后我们这次就自己定义一个int的类型,MyInteger,然后实现,递增,递减的操作. 首先我 ...
- C++_重载new,delete
C++_重载new,delete 这里重载的是new三步delete两步里的第一步操作,这点一定要注意,所以下面出现size可以直接malloc,可以看以前笔记 new表达式(new).operato ...
- C++:运算符重载函数之成员运算符重载函数
5.2.3 成员运算符重载函数 在C++中可以把运算符重载函数定义为某个类的成员函数,称之为成员运算符重载函数. 1. 定义成员运算符重载函数的语法形式 (1)在类的内部,定义成员运算符重载函数的格式 ...
- 运算符重载(加减运算符、前置加加(减减)后置加加(减减)运算符、赋值运算符、输入输出运算符、关系运算符、函数调用)
编译器对于一个类会默认生成以几种函数: 1.默认构造函数(空形参,空函数体) 2.默认拷贝构造函数(浅拷贝,也叫值拷贝.字节拷贝) 3.析构函数(空形参,空函数体.析构函数要求形参列表必须是空的,所以 ...
- Python基础_第2章_Python运算符与if结构
Python基础_第2章_Python运算符与if结构 文章目录 Python基础_第2章_Python运算符与if结构 Day02之`Python运算符与if结构` 一.昨日回顾 1.回顾昨天的课程 ...
- python判断两个对象是否为相等使用的运算符是_Python入门_浅谈逻辑判断与运算符...
这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...
- [YTU]_2640( 编程题:运算符重载---矩阵求和)
题目描述 /* 有两个矩阵a和b,均为2行3列.求两个矩阵之和. 重载运算符"+",使之能用于矩阵相加(如c=a+b). 重载流插入运算符"<<"和 ...
- [YTU]_2640(编程题:运算符重载---矩阵求和)
题目描述 /* 有两个矩阵a和b,均为2行3列.求两个矩阵之和. 重载运算符"+",使之能用于矩阵相加(如c=a+b). 重载流插入运算符"<<"和 ...
最新文章
- 漫长的数据中心绿化之路到底该如何走www.shzhenai.com
- 在 ASP.NET Core 中集成 Skywalking APM
- 如何成为优秀的科学家
- Linux 下编译安装OpenCV【转】
- Android提供了哪些主要UI控件,Android必备:Android UI控件的了解与学习
- mysql索引的创建和删除吗_MySQL索引的创建、删除和查看
- linux、unix中的批量文件重命名
- arduino编码器计数_【Arduino】旋转编码器的Arduino使用方法
- qq互联登录授权php配置,开通qq互联开放平台登陆功能的步骤
- 军火库(第一期):无线电硬件安全大牛都用哪些利器?
- EndNote设置自动导入文献
- Flutter从入门到能寄几玩儿
- mysql implode_PHP implode() 函数
- flask爱家租房项目开发(十)
- 快速排序(随机主元)、随机数生成和随机选择算法
- trove mysql 镜像_centos7下手动制作trove镜像
- 开始暂停按钮实现图片随机切换并显示在指定图像框内
- 扫二维码 下载app
- Python数据分析【第11天】| DataFrame转化格式并保存(to_excel(),to_json(),to_csv())
- Excel中VLOOKUP函数简易使用——精确匹配或近似匹配数据