首页 > 其他分享 >11、友元函数计算2+z

11、友元函数计算2+z

时间:2023-04-21 23:58:19浏览次数:37  
标签:11 友元 函数 double imag operator real tmp Cmycomplex

如题,要求实现:

1、输入一个复数

2、按后缀那样计算

3、Show出结果。

例如输入:

7 8

输出

(14+8i)
(5+4i)
(7+4i)

#include<iostream>
using namespace std;
class Cmycomplex
{
private:
    double real,imag;
public:
    Cmycomplex(double r=0,double i=0);//构造函数设默认值,或者重载构造函数 
    void Set(double r,double i);
    Cmycomplex operator +(Cmycomplex &);//注意,这里只需要传一个参数,运算符+重载功能上类似自定义的.add()函数 
    friend Cmycomplex operator +(double r,Cmycomplex &);//友元这里传两个参数,friend关键字写在最前面 
    friend Cmycomplex operator +(Cmycomplex &,double r);//友元这里传两个参数,friend关键字写在最前面
    void Show();
};

Cmycomplex::Cmycomplex(double r,double i)//类外定义时无需再写默认值 
{
    real=r;
    imag=i;
}

void Cmycomplex::Set(double r,double i)
{
    real=r;
    imag=i;
}

Cmycomplex Cmycomplex::operator +(Cmycomplex &z) 
{
    Cmycomplex tmp;
    tmp.real=real+z.real;
    tmp.imag=imag+z.imag;
    return tmp;
}

Cmycomplex operator +(double r,Cmycomplex &z)//类外无需写friend关键字,可看作普通函数,不属于该类 
{
    Cmycomplex tmp;
    tmp.real=r+z.real;
    tmp.imag=z.imag;
    return tmp;
}

Cmycomplex operator +(Cmycomplex &z,double r)//类外无需写friend关键字,可看作普通函数,不属于该类 
{
    Cmycomplex tmp;
    tmp.real=z.real+r;
    tmp.imag=z.imag;
    return tmp;
}

void Cmycomplex::Show()
{
    cout << "(" << real << "+" << imag << "i" << ")" << endl; 
}
//StudybarCommentBegin
int main()
{
Cmycomplex z1(3,4),z2(7),z3,z4(z1);
double x,y;
cin>>x>>y;
z3.Set(x,y);
cout<<endl;
z3=z3+z2;
z3.Show();
z4=2+z4;
cout<<endl;
z4.Show();
z4=z4+2;
cout<<endl;
z4.Show();

} 
//StudybarCommentEnd

-END

标签:11,友元,函数,double,imag,operator,real,tmp,Cmycomplex
From: https://www.cnblogs.com/peitongshi/p/17342243.html

相关文章

  • 加密与解密x64逆向——寄存器和函数调用
    64位软件逆向技术寄存器本节讨论的x64是AMD和INTEL64的合成,是指与现有x86兼容的64位CPU。在64位系统中,内存地址为64位。x64系统通用寄存器的名称,第一个字母从E改为R“RAX”,大小扩展到64位,数量增加8个,扩充了8个128位XMM寄存器。函数1.栈平衡RSP用来保存当前的栈顶指针,每8个......
  • 加密与解密x64逆向——虚函数
    4.整数的取模取模运算可以通过除法指令实现。一般的优化做法是将其转换成等价的位运算或者除法运算,再由除法运算进行优化。虚函数C++的三大核心机制是封装,继承,多态,而虚函数就是多态的一种体现。软件逆向中,难免遇到使用面向对象思想设计的软件,而虚函数就是在实际软件逆向过程中......
  • Win11 删除右键固定到开始屏幕、快速访问
    Win11删除右键"固定到开始屏幕注册表路径: 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shellex\ContextMenuHandlers删除: 删除名为PintoStartscreen的项目恢复: 新建名为PintoStartscreen的项目,默认数据:{470C0EBD-5D73-4d58-9CED-E91E22E23282}Win11删除......
  • AtCoder Regular Contest 114 D Moving Pieces on Line
    洛谷传送门AtCoder传送门挺有意思的题。首先显然地,一个棋子不会走回头路。于是一个棋子沿着边走的效果就是区间异或。更进一步,设\(s_i\)为\(i-1\toi\)的边颜色与\(i\toi+1\)的边颜色是否相同(差分),相当于对于每个\(i\)都选择\(s_{a_i}\)和\(s_{x_i}\),将它们异或......
  • Eigensequence UVA - 11133
    给你一个递增序列的第一位a1,最后一位an,求有多少个序列满足:以a1为首,an为尾 1、B(1)=A(1)2、后面每项满足A[j]=B[j], A(j-1)<B(j)≤A(j),且bj能整除A(j)-A(j-1)。   F[i][j]最后一位为j的方案数#include<iostream>#include<cstring>#include<a......
  • shell 脚本编程进阶之函数
    一、定义函数1、语法#语法一:func_name(){...函数体...}#语法二:functionfunc_name{...函数体...}#语法三:functionfunc_name(){...函数体...} 在函数中定义本地变量,local name=NAME2、查看定义的函数#查看当前已定义的函数名declare-F#查看当前已定义的函数定义declare-f#......
  • 07 常用函数
    07常用函数关系型数据库的常用函数大多数从命名到功能都是一样的,但也有少量不一致。通过常用函数的学习,我们可以更加方便的对数据进行操作。函数的作用:为了简化操作,mysql提供了大量的函数给程序员使用(比如输入当前时间,可以调用now()函数)函数可以出现的位置:插入语句的values()......
  • 11 第十一章 测试代码
    测试函数Python标准库中的模块unittest提供了代码测试工具;单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求;全覆盖式测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式;对于大型项目,要实现全覆......
  • 【LeetCode动态规划#11】打家劫舍系列题(涉及环结构和树形DP的讨论)
    打家劫舍力扣题目链接(opensnewwindow)你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组......
  • 1110 完全二叉树
    给定一个树,请你判断它是否是完全二叉树。输入格式第一行包含整数 N,表示树的结点个数。树的结点编号为 0∼N−1。接下来 N 行,每行对应一个结点,并给出该结点的左右子结点的编号,如果某个子结点不存在,则用 - 代替。输出格式如果是完全二叉树,则输出 YES 以及最后一个结点......