【1274】面向对象程序设计上机练习十二(运算符重载)

32 篇文章 0 订阅


面向对象程序设计上机练习十二(运算符重载)

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

处理一个复数与一个double数相加的运算,结果存放在一个double型变量d1中,输出d1的值。定义Complex(复数)类,在成员函数中包含重载类型转换运算符:operator double(){return real;}

输入

输入占两行:
第1行是一个复数的实部和虚部,数据以空格分开。
第2行是一个实数。

输出

输出占一行,复数的实部和实数之和,小数点后保留1位。

示例输入

2.3 5.4
3.4

示例输出

5.7
#include <iostream>
using namespace std;
class Complex
{
private:
    double real;
    double image;
public:
    void display()
    {
        cin>>real>>image;
    }
    void show()
    {
        cout<<real<<endl;
    }
    friend Complex operator +(Complex k,double f);//友元函数的函数重载
};
Complex operator +(Complex k,double f)
{
    Complex c;
    c.real=k.real+f;
    c.image=k.image;
    return c;
}
int main()
{
    Complex a,c;
    a.display();
    double b,d;
    cin>>b;
    c=a+b;
    c.show();
    return 0;
}

方法二:

#include<iostream>
#include<cstdio>
using namespace std;
class T
{
private:
	double real;
	double image;
public:
	T()
	{
		real=0;
		image=0;
	}
	T(double r)
	{
		real=r;
		image=0;
	}
	T (double r,double i)
	{
		real=r;
		image=i;
	}
	void disp()
	{
		printf("%.1lf",real);
	}
	operator double()
	{
		return real;
	}
};
int main()
{
	double a,b,c,d1;
	cin>>a>>b>>c;
	T c1(a,b),c2;
	d1=c+c1;
	c2=T(d1);
	c2.disp();
	return 0;
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值