当前位置: 首页 > news >正文

5-1CComplex运算符重载为友元

以下是一个用运算符重载为友元重载的方法重做复数加减法的运算,请填空完成程序。

#include <iostream>
using namespace std;
class CComplex
{    
private:double real; double imag;
public:CComplex(double r=0.0,double i=0.0){ 
real(r), imag(i)}friend CComplex operator + (CComplex c1, CComplex c2);friend CComplex operator - (CComplex c1, CComplex c2);void display();
};
CComplexoperator + (CComplex c1, CComplex c2){return 
CComplex(c1.real + c2.real, c1.imag + c2.imag)
;}
CComplex operator - (CComplex c1, CComplex c2){return 
CComplex(c1.real - c2.real, c1.imag - c2.imag)
;}
void 
CComplex::display(){cout<<"("<<real<<","<<imag<<")"<<endl;}
int main()
{    CComplex c1(5,4),c2(2,10),c3,c4;cout<<"cl=";    c1.display();             cout<<"c2=";    c2.display();c3=c1-c2;        cout<<"c3=c1-c2=";    c3.display();c4=c1+c2;    cout<<"c4=c1+c2=";    c4.display();return 0;
}

数组重载的运算符[ ]
分数 9
作者 谢颂华
单位 武汉理工大学
已知一维数组类ARRAY的定义如下,ARRAY与普通一维数组区别是:其重载的运算符[ ]要对下标是否越界进行检查。

#include <iostream>
#include <string.h>
using namespace std;
class ARRAY{   int *v;       //指向存放数组数据的空间int s;        //数组大小  
public:   ARRAY(int a[], int n){if(n<=0) {v=NULL;s=0;return;}s=n;v= new int[n];for(int i=0; i<n; i++) v[i]=a[i];}~ ARRAY(){delete []v;}int size(){ return s;} int& operator[](int n); 
};
int& ARRAY::
operator[](int n)  //[ ]的运算符成员函数定义
{if(n<0 || 
n >= s
) {cerr<<"下标越界"; }return 
v[n]
;
}int main()
{int x[]={2,4,6,8};ARRAY A(x,4);for(int i=0; i<4; i++)cout<<A[i]<<" ";return 0;
}

Point类运算符+重载为友元
分数 12
作者 谢颂华
单位 武汉理工大学

#include <iostream>
using namespace std;
class Point
{private:int x, y;public:Point(){x=y=0;}Point(int x0,int y0) {x=x0;y=y0;}int GetX() { return x; }int GetY() { return y; }void Print(){cout<<"Point("<<x<<","<<y<<")"<<endl;}friend Point operator+(Point& pt, int dd)
;  //友元函数声明friend Point operator+(Point& pt1, Point& pt2)
;  //友元函数声明
};Point operator+(Point& pt,int dd) //加号操作符重载函数,实现Point类对象与整数加法
{Point temp=pt;temp.x+=dd;temp.y+=dd;return temp
;
}Point operator+(Point& pt1,Point& pt2) //加号操作符重载函数,实现两个Point类对象的加法
{Point temp=pt1;temp.x+=pt2.x;temp.y += pt2.y
;return temp;
}
int main() {Point A(1,4),B(2,3),C;int x=8;C=A+8;C.Print();C=A+B;C.Print();return 0;
}  
http://www.lryc.cn/news/215802.html

相关文章:

  • Vue3.0 watch和watchEffect监听器:VCA
  • 1360. 日期之间隔几天
  • ubuntu配置 Conda 更改默认环境路径
  • 华山编程培训中心——工业相机飞拍
  • linux 释放缓存命令并做成定时任务
  • 求解一个整数中含多少个1
  • js编写一个函数判断所有数据类型
  • Python对于时间相关模块的学习记录(time,datetime等模块)
  • 【C#】获得所有可见窗口信息
  • ffmpeg的基本功能介绍
  • QECon大会亮相产品,支持UI自动化测试?RunnerGo
  • Linux开关机相关的命令解析
  • C++二分查找算法的应用:俄罗斯套娃信封问题
  • redis如何保证和mysql数据的一致性
  • SpringBoot整合Redisson,赶紧整起来!
  • 测试Whisper效果
  • Seata 四种事务模式
  • 超好用的IDEA插件推荐,写完代码直接调试接口
  • 发送post请求、携带cookie、响应对象、高级用法
  • JMeter接口测试性能测试
  • MongoDB——MongoDB删除系统自带的local数据库
  • 【LeetCode刷题-链表】--203.移除链表元素
  • Microsoft Dynamics 365 CE 扩展定制 - 3. SDK企业功能
  • 人工智能基础_机器学习016_BGD批量梯度下降求解多元一次方程_使用SGD随机梯度下降计算一元一次方程---人工智能工作笔记0056
  • 硬件测试(二):波形质量
  • PostgreSQL 数据库日志相关参数
  • delete请求,express获取req.body失败
  • 2023年江西省职业院校技能竞赛“网络安全”赛项样题
  • groovy下载与安装
  • Hugging Face LLM部署大语言模型到亚马逊云科技Amazon SageMaker推理示例