C++学习笔记:实现向量类的加减赋值运算,重载运算符
回顾流运算符和加减运算符的重载。
重点掌握赋值运算符的重载。
void operator=(const Vector&v);
#include <iostream>using namespace std;
/*
*作者:youshen_wwd
*时间:2020/5/14
*题目:设向量X=(x1,x2,…,xn)和Y=(y1,y2…,yn),它们之间的加、减分别定义为:X+Y=(x1+y1, x2+y2,…, xn+yn)X-Y=(x1-y1, x2-y2,…, xn-yn)
编程序定义向量类Vector ,重载运算符”+”、”-“、”=”,实现向量之间的加、减和赋值运算;
用重载运算符”>>”、”<<”做向量的输入/输出操作。注意检测运算的合法性。
*/
class Vector{//这里仅实现两个三维向量之间的计算
private:int *Array;int num;//维度
public:Vector(int n){//初始化num=n;Array=new int [num];for (int i=0;i<num;i++)Array[i]=0;}friend istream &operator>>(istream &input,Vector &v);friend ostream &operator<<(ostream &output,Vector &v);friend Vector operator+(Vector &v1,Vector &v2);friend Vector operator- (Vector &v1,Vector &v2);void operator=(const Vector &v2);
};
void Vector::operator=(const Vector &v2){//=必须作为成员函数重载num=v2.num;Array= new int [num];for (int i=0;i<num;i++){Array[i]=v2.Array[i];}
}
Vector operator+(Vector &v1,Vector &v2){//对+进行重载,这里考虑的是两个维度相等的向量
int n=v1.num;
Vector v(n);
for (int i=0;i<n;i++){v.Array[i]=v1.Array[i]+v2.Array[i];
}
return v;
}Vector operator- (Vector &v1,Vector &v2){//对-进行重载,这里考虑的是两个维度相等的向量
int n=v1.num;
Vector v(n);
for (int i=0;i<n;i++){v.Array[i]=v1.Array[i]-v2.Array[i];
}
return v;
}istream &operator>>(istream &input,Vector &v){//对运算符>>的重载
cout<<"这是一个"<<v.num<<"维的向量"<<endl;
for (int i=0;i<v.num;i++){cin>>v.Array[i];}
return input;}ostream &operator<<(ostream &output,Vector &v){//对运算符<<重载
for (int i=0;i<v.num;i++){cout<<v.Array[i]<<" ";}
return output;}
int main(){Vector v1(3),v2(3),v3(3);
cout<<"input v1 please:"<<endl;
cin>>v1;
cout<<"input v2 please:"<<endl;
cin>>v2;
v3=v1+v2;
cout<<"v1+v2="<<v3<<endl;
v3=v1-v2;
cout<<"v1-v2="<<v3<<endl;
v3=v2;
cout<<v3;
}
C++学习笔记:实现向量类的加减赋值运算,重载运算符相关推荐
- Kotlin学习笔记12——数据类和密封类
Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...
- JVM学习笔记(Ⅰ):Class类文件结构解析(带你读懂Java字节码,这一篇就够了)
JVM学习笔记(Ⅰ):Class类文件结构解析,带你读懂Java字节码 前言:本文属于博主个人的学习笔记,博主也是小白.如果有不对的地方希望各位帮忙指出.本文主要还是我的学习总结,因为网上的一些知识分 ...
- 冰冰学习笔记:string类的简单模拟
欢迎各位大佬光临本文章!!! 还请各位大佬提出宝贵的意见,如发现文章错误请联系冰冰,冰冰一定会虚心接受,及时改正. 本系列文章为冰冰学习编程的学习笔记,如果对您也有帮助,还请各位大佬.帅哥.美女点点支 ...
- ES6学习笔记03:变量的解构赋值
ES6学习笔记03:变量的解构赋值 如果想从复杂数据结构(数组.对象)中获取某一个数据,可能需要大量的遍历操作才能完成.通过解构赋值,这一过程可以得到简化. 1.字符串的解构赋值 其实,Python也 ...
- java计算10以内阶层相加的值_大班计算:10以内数加减混合运算
大班计算:10以内数加减混合运算 设计意图: 在学习利用加减法的基础上通过情境课件来学习加减混合运算.新课利用两幅生动形象的描述,展现白天鹅飞来飞去的情景,让幼儿明白飞来就是加上,飞走就是减去的意义. ...
- 每天一算法(一)——用链表实现加减乘运算
用链表实现加减乘运算 // resultW.cpp : 定义控制台应用程序的入口点. #include "F:\HU\resultW\resultW\stdafx.h" #incl ...
- 分数加减法混合计算机,分数小数加减混合运算练习题及答案.doc
分数小数加减混合运算练习题及答案 分数小数加减混合运算练习题及答案 1. 知识目标:会选择比较适合的方法进行分数,小数加减混合运算. 2. 认知目标:通过练习,使学生初步了解将未知转化为已知的数学思想 ...
- js日期加减一天_JS日期加减,日期运算代码
这篇文章主要介绍了JS日期加减,日期运算代码,需要的朋友可以参考下 一.日期减去天数等于第二个日期 function cc(dd,dadd){ //可以加上错误处理 var a = new Date( ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- Python3 基础学习笔记 C08 【类】
CSDN 课程推荐:<8小时Python零基础轻松入门>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python:轻松入门& ...
最新文章
- 基于至强® 平台的内存数据库解决方案
- HwBinder驱动篇-Android10.0 HwBinder通信原理(十)
- AHK调用API获取ListView每列的坐标
- 双绞线、同轴电缆和光纤电缆的区别
- JDK1.8的安装与环境变量设置演示,java、jre安装及配置
- C++ Primer 5th笔记(9)chapter9 顺序容器 构造和赋值
- 计算机应用技术自考知识点,自考计算机应用技术知识点:微处理器结构
- ECCV 2018 | 美图云联合中科院提出基于交互感知注意力机制神经网络的行为分类技术...
- 抽屉开关_技术天地|380伏抽屉开关指示灯更换流程
- MFC 列表控件CListCtrl加载类似QQ界面的头像与文字
- javascript中的后退和刷新
- 一步步编写操作系统 38 一级页表与虚拟地址3
- 【Sqoop】从MySQL同步数据到Hive的操作参数解析
- mysql-电商库演练1-创建数据-基本查询练习
- mysql 命令行可以连接 php不能,mysql连接命令行可以php竟然不可以
- hive-05-Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
- Oracle 加快 Java 迭代速度,功能性版本只维护六个月
- 物联网解决方案应用之智能安防运维解决方案
- 信息安全习题(含答案)
- VScode连接Anaconda
热门文章
- 通俗易懂讲解 CAP理论
- 3ds max基础知识
- 第六章 (数据库) 第3节 数据库高级
- 饿了么分布式服务治理及优化经验
- 一位清华贫困生的“树洞”刷屏!“我想照亮哪怕其他一个人也好”...
- 【读过的书】《好看的皮囊千篇一律,有趣的灵魂万里挑一》
- Android 入门宝典 - inflate 生成视图 动态加载视图
- 「Computer Vision」Note on Kinetics and Two-Stream Inflated 3D ConvNets (I3D)
- 把幽灵和熔断关闭_比较幽灵和三巨头
- 2021人工智能状况分析报告