一个程序,让你理解运算符重载操作
时间:2022-05-05
本文章向大家介绍一个程序,让你理解运算符重载操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 //实现运算符重载
2 #include<iostream>
3 #include<cstdio>
4 using namespace std;
5 namespace gong
6 {
7 const int maxn=2;
8 }
9 namespace Var
10 {
11 int i,j;
12 }
13 class Matrix
14 {
15 public :
16 Matrix(){};
17 ~Matrix(){};
18 int array[gong::maxn][gong::maxn];
19 Matrix operator + (const Matrix & aa) const ; //实现函数a+b重载,类外定义
20 Matrix operator - (const Matrix &aa ) const //实现函数a-b重载
21 {
22 Matrix dd;
23 using namespace gong ;
24 using Var::i;
25 using Var::j;
26 for( i=0;i<maxn;i++)
27 {
28 for( j=0;j<maxn;j++)
29 {
30 dd.array[i][j]=array[i][j]-aa.array[i][j];
31 }
32 }
33 return dd;
34 }
35 /*注意《《,》》这样的运算符不能定义为类重载函数
36 虽然不能“重载”为成员函数,但是可以定义为新的成员函数,只不过使用习惯和常例不符而已。
37 */
38 ostream operator<< (ostream &out) const
39 {
40 using namespace gong ;
41 using namespace Var;
42 for(i=0;i<maxn ;i++)
43 {
44 for(j=0;j<maxn;j++)
45 {
46 out<<array[i][j]<<ends;
47 }
48 out<<endl;
49 }
50 return out ;
51 }
52 };
53 Matrix Matrix::operator +(const Matrix & aa) const
54 {
55 Matrix dd;
56 using namespace gong ;
57 using namespace Var ;
58 for( i=0;i<maxn;i++)
59 {
60 for( j=0;j<maxn;j++)
61 {
62 dd.array[i][j]=array[i][j]+aa.array[i][j];
63 }
64 }
65 return dd;
66 }
67 int main()
68 {
69 Matrix a,b,c;
70 using gong::maxn;
71 using namespace Var;
72 for(i=0;i<maxn;i++)
73 {
74 for(j=0;j<maxn;j++)
75 {
76 scanf("%d%d",&a.array[i][j],&b.array[i][j]);
77 }
78 }
79 c=a+b;
80 // cout<<c<<endl;
81 c<<cout;
82 c=a-b;
83 c<<cout ;
84 return 0;
85 }
不妨设 a[2][2]= b[2][2]=
{ 1, 2 { 1, 2
3 ,4} 3 ,4}
在vc上运算的结果为:
- WordPress系统暴力破解测试工具 – wpbf
- RecyclerView notifyItem闪烁的问题
- 独家: iOS是如何收集用户的地理信息的
- Hygieia 为何物?DevOps 利器也
- 汽车攻击离你很近:一分钟变成汽车黑客
- LIFX智能灯泡漏洞泄露WIFI密码
- android ViewPager+Fragment之懒加载
- 逆向APK进行smali注入实现“秒破WIFI”
- 我所理解的Android 启动模式
- 搭建开源入侵检测系统Snort,并实现与防火墙联动
- 如何在Python中为长短期记忆网络扩展数据
- android 开发Handler源码剖析
- Keras作为TensorFlow的简化界面:教程
- Android基础:Fragment,看这篇就够了
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- RestPack Java实现Html转PDF文件
- 六、垃圾回收_判断对象是否存活算法_引用计数法详解
- webpack + express 实现文件精确缓存
- python提取视频中的音频
- Vue3 响应式原理
- vue-mergeable-table 动态生成的可合并行列的表格
- 【GOFLY】基于GO语言gin框架和websocket实现的全开源WEB客服即时通讯管理系统
- edgeXFoundry中modbus通信部署和测试(待续)
- C++面向对象学习之运算符重载(1)
- PAT (Basic Level) Practice (中文)1045 快速排序 (25 分)
- PAT (Advanced Level) Practice 1028 List Sorting (25分)
- CNS图表复现06—根据CellMarker网站进行人工校验免疫细胞亚群
- 【Java】03 流程控制语句
- Artwork (Gym - 102346A)【DFS、连通块】
- PAT (Basic Level) Practice (中文)1046 划拳 (15 分)