C++友元函数实现两个复数相加
#include "string"
#include "iostream"
using namespace std;class Complex
{private:double real; //实部double image; //虚部
public:Complex(double r = 0, double i = 0){real = r;image = i;}~Complex(){}//用成员函数的方式实现string toString(){char result[100];sprintf(result, "(%lf) + i(%lf)\n", real, image);return string(result);}//用友元函数的方式实现friend string toString(Complex c){char result[100];sprintf(result, "(%lf) + i(%lf)\n", c.real, c.image); //尽管不是成员函数,但是友元函数,可以直接访问私有成员return string(result);}//用友元函数的方式实现两个复数的加法friend Complex add(Complex c1, Complex c2){Complex c;c.image = c1.image + c2.image;c.real = c1.real + c2.real;return c;}
};int main()
{Complex c1(23, -3);cout << c1.toString(); //调用成员函数cout << toString(c1); //调用友元函数Complex c2(-32, 7);Complex c3 = add(c1, c2); //调用友元函数cout << toString(c3);
}
C++友元函数实现两个复数相加相关推荐
- (PTA)6-7 使用函数计算两个复数之积 (10分)
若两个复数分别为:c 1 =x 1 +y 1 i和c 2 =x 2 +y 2 i,则它们的乘积为 c 1 ×c 2 =(x 1 ...
- PTA 6-6 使用函数计算两个复数之积
若两个复数分别为:c1=x1+y1i和c2=x2+y2i,则它们的乘积为 c1×c2=(x1x2−y1y2)+(x1y2+x2y1)i. 本题要求实现一个函数计算两个复 ...
- 4-3 使用函数计算两个复数之积 (10分)
若两个复数分别为:c1=x1+y1ic_1=x_1 + y_1 ic1=x1+y1i和c2=x2+y2ic_2=x_2 + y_2 ic2=x2+y2i,则它们的乘 ...
- 设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符
设计一个函数把两个数字相加.不得使用 + 或者其他算术运算符. 示例: 输入: a = 1, b = 1 输出: 2 提示: a, b 均可能是负数或 0 结果不会溢出 32 位整数 解题思路 ...
- C语言:实验5-1 使用函数计算两个复数之积.2021-07-23
实验5-1 使用函数计算两个复数之积 (10 point(s)) 若两个复数分别为:c1=x1+y1i和c2=x2+y2i,则它们的乘积为 c1×c2= ...
- 两个复数相加减c语言编程,用c语言 如何编写两个复数的运算啊 都含有虚部 谢谢啊...
匿名用户 1级 2006-04-17 回答 定义一个struct作为复数,然后分别定义加减剩除运算.可以增加一个函数printcomplex来在主函数中以数学的形式输出复数. typedef stru ...
- C++——运算符的重载---以成员函数方式重载---以友元函数方式重载
一.运算符的重载 1.运算符的重载 允许把标准运算符(如+ - * /等运算符)应用于自定义数据类型的对象,可以提高程序的可读性,运算符的重载本质上还是函数重载.运算符仅仅是语法上的方便,它是另一种函 ...
- 运算符重载为类的友元函数
运算符重载为类的友元函数 友元函数通过类的对象可以访问类的公有.保护和私有成员,也就是类的所有成员友元函数都能访问到.所以运算符重载为类的友元函数以后也可以访问类的所有成员. 与运算符重载为成员函数时 ...
- 友元实例:友元类及友元函数
学习了c++这么久,一直没有对友元进行了解,据说友元不是特别好用(据说,不是我说的),因此直到今天才去了解.其实友元确实不是很常用,但友元功能确实很实用,它不但能够释放类中的非公有成员,同时还能保证了 ...
最新文章
- weblogic服务器部署的程序,如何直接通过IP访问(即URL中去掉工程名)
- 全球数据进入ZB时代,希捷如何让数据创造深价值?
- 热门 | Google Brain前员工深度盘点2017人工智能和深度学习各大动态
- Android事件处理--读书笔记
- It's highly recommended that you fix the library with 'execstack -c libfile', or link it with '-z
- 控制dcom程序使用端口_使用VS Code调试.net控制台应用程序的方法
- html设计动画小黄人,CSS3实现可爱的小黄人动画
- vmware workstation克隆linux后修改网卡为eth0方法
- 如何把GIT项目push到公司review服务器
- 导航菜单UI设计中的作用,优秀案例临摹起来!
- 基本DNS服务器的配置
- socketmq 设置队列大小_TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?...
- Linux 内存管理之 SLUB分配器(5):slub初始化过程
- MATLAB利用ode求解二阶微分方程
- 上海悠悠python培训视频教程
- 【官方原版】Bootstrap Tooltips
- 下载Macromedia FLASHPAPER
- 非负数的和与个数c语言编程,C语言习题中,编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和...
- jvm jni 及 pvm pybind11 大批量数据传输及优化
- 寒假学习计划统筹以及考研展望
热门文章
- 荒岛余生2java攻略_荒岛余生2时空探秘_荒岛余生2:时空探秘游戏心得与记录_安卓应用游戏下载- AppChina应用汇...
- 我的2019年计划清单
- hp服务器960g固态硬盘,阿斯加特AS 960G SSD测评,这么便宜的大容量SSD你敢要吗
- Java模拟微信抢红包
- 【成神之路】Http网络相关面试题
- JavaScript WebGL 使用图片疑惑点
- 力扣 2200. 找出数组中的所有 K 近邻下标
- MLOps极致细节:15. Azure ML数据集的上传(Azure Workspace DataStore Upload)与注册(Azure Dataset Register)
- 混合云的基本介绍,混合云主要有什么优缺点?
- Macbook(M1版)的用户看过来,.net 6 Preview 6支持Apple Silicon for macOS