标题:类型转换
取消只看楼主
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
 问题点数:0 回复次数:1 
类型转换

#include <iostream>
using namespace std;
class Complex
{private:
double real;
double imag;
public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
Complex(double r){real=r;imag=0;}
operator double(){return real;}
friend Complex operator+(Complex c1,Complex c2);
void display();
};

Complex operator+(Complex c1,Complex c2)
{ Complex c;
c.real=c1.real+c2.real;
c.imag=c1.imag+c2.imag;
return c;
}

void Complex::display()
{cout<<"("<<real<<","<<imag<<"i)"<<endl;}

int main()
{Complex c1(23,3.2),c2;
double dl;
dl=c1+1.0;
cout<<dl<<endl;
c2=c1+Complex(3.2);
c2.display();
return 0;
}
/*我想让它既可以用复数的形式输出,又可以做double的形式输出,如何才能实现啊?*/

搜索更多相关主题的帖子: 类型 
2006-06-15 22:27
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
得分:0 
我感觉这两个有冲突,但是冲突在哪呢,如何解决呢
Complex(double r)real=r;imag=0;
operator double()return real;

2006-06-15 22:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-72618-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.135574 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved