首页 > 编程语言 >C++

C++

时间:2023-05-11 17:46:14浏览次数:45  
标签:real return CComplex imag C++ double operator

复数加减(运算符重载)

  1. 声明一个复数类CComplex(类私有数据成员为double型的real和image)
  2. 定义构造函数,用于指定复数的实部与虚部。
  3. 重载<<运算符,以格式real+image i的格式输出当前对象(当虚部为非负数时,实部虚部中间用+号连接,当虚部为负数时,实部虚部用-号连接:如3+4i,3-4i,3+0i)。
  4. 重载+运算符,实现两个复数对象之和(实部虚部分别相加)。
  5. 重载-运算符,实现两个复数对象的差(实部虚部分别相减)。

#include <iostream>
using namespace std;

class CComplex
{
public:
CComplex(){}
CComplex(double _r,double _i)
{
real=_r;
imag=_i;
}
friend istream &operator <<(istream & ,CComplex & );
friend ostream &operator >>(ostream & ,CComplex & );
CComplex operator+(CComplex c) {
return CComplex(real+c.real,imag+c.imag);
}
CComplex operator-(CComplex c){
return CComplex(real-c.real,imag-c.imag);
}
double real,imag;
};
istream &operator >>(istream & is,CComplex &c){
is>>c.real>>c.imag;
return is;
}
ostream &operator <<(ostream & os ,CComplex& c ){
os<<c.real<<showpos<<c.imag<<"i"<<noshowpos<<endl;
return os;
}

int main() {
double r1,r2,i1,i2;
cin>>r1>>i1;
cin>>r2>>i2;
CComplex c1(r1,i1),c2(r2,i2),c3,c4;
cout<<c1;
cout<<c2;
c3=c1+c2;
cout<<c3;
c4=c1-c2;
cout<<c4;
return 0;
}

 

标签:real,return,CComplex,imag,C++,double,operator
From: https://www.cnblogs.com/zh-ang-zhang/p/17391739.html

相关文章

  • C/C++模拟银行排队叫号系统[2023-05-11]
    C/C++模拟银行排队叫号系统[2023-05-11]2、模拟银行排队叫号系统(难度等级A)[问题描述]模拟实现银行的排队叫号系统。[基本要求](1)假定银行上午9点开门,下午5点关门,期间每个小时的客流量不超过35人;(2)每个客户的基本信息包括:到达银行时间、业务需要办理的时长。这两项数据均......
  • 【C++学习笔记】C++ 正则表达式不完全支持零断宽言
    最近需要解析配置文件,遇到从@STARTDATA@END中提取DATA的正则,按照C#的操作,直接(?<=@START)[\W\w]?(?=@END),就能提取的,可是在C++中,regexe("(?<=@START)[\W\w]?(?=@END)")报错了,找了很多说法,最终结论:支持先行断言,不支持后行断言即:(?<=@START)和(?<!@START)。好在C++支持子匹......
  • C/C++交通咨询系统设计哈夫曼编码问题[2023-05-11]
    C/C++交通咨询系统设计哈夫曼编码问题[2023-05-11]题目三、交通咨询系统设计最短路径问题设计要求及分析:设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一城市顶点之间的最短路径(里程)、最低花费、最少时间等问题。对于不同咨询要求,可输出城市间的路程、所需时间......
  • c++自定义工具类的定义和使用
    classlog_work{private:intlog_id_=1;intlog_level_;qnx_slog2()=default;virtual~qnx_slog2(){uninit();}public:inlinestaticlog_work&get_log(){staticqnx_slog2slog2_instance;returnslog2_instance;}......
  • c++模版多参数的递归用法--自定义log
    #include<iostream>#include<sstream>#include<string>#include<tuple>#include<type_traits>template<typenameT>voidprint_impl(std::ostringstream&os,constchar*format,T&&arg){while(*form......
  • C++ - 崩溃定位用dump和pdb文件
    目的利用dump和pdb文件来快速定位程序崩溃的地方步骤1、写一个简单的崩溃程序sample.cpp1classTest{2public:3voidsay(){4inta=0;5intb=10/a;6}7};89int_tmain(intargc,_TCHAR*argv[])10{11Testt;......
  • 真机调试可以正常安装,但是不能正常运行,出现错误:couldn‘t find “libc++_shared.so“
    在迁移代码的时候,发现代码可以在模拟器上运行,但是无法在真机上面运行,最后经过挨个的排查,最终发现是ndk的问题。在app的build.gradle中的ndk缺少了匹配的实体机类型,然后加了一下'x86','armeabi-v7a','armeabi','armabi-v7a','x86_64','arm64-v8a','mips','mips64......
  • 总结:C++引用(Reference)
    声明:资料整理自网络资源,未能全部注明引用来源,如有侵权请联系。一、基本概念引用(Reference)是C++相对于C语言的又一个扩充。引用变量是一个别名,即某个已存在变量的另一个名字。声明方法:类型标识符&引用名=目标变量名;inta;//定义变量aint&b=a;//定义引用b,a和b表......
  • 编程打卡:C++语言程序设计
    //Node.h#ifndefNODE_H#defineNODE_H//类模板的定义template<classT>classNode{private: Node<T>*next; //指向后继结点的指针public: Tdata; //数据域 Node(constT&data,Node<T>*next=0);//构造函数 voidinsertAfter(Node<T>*p); //......
  • c++打卡训练
    自守数(半成品,指没写出来,双倍给明天)流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ longinti,m; intj,n,k,a=1; for(i=0;i<=100000;i++){ n=i; m=i*i; for(j=0;n=0;j++){ n/=10; for(k=j;k>=0;k--){ a=a+a*10; if(m%a==i){ printf......