| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 488 人关注过本帖
标题:类型转换
取消只看楼主 加入收藏
心动音符
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
快速回复:类型转换
数据加载中...
 
   



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

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