| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:关于C++转换构造函数的问题求教!
取消只看楼主 加入收藏
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
结帖率:90.24%
收藏
已结贴  问题点数:20 回复次数:1 
关于C++转换构造函数的问题求教!
//本人用的是VS2010,编写了这个程序实现运算符的重载,中间用到了转换构造函数,但是程序一直编译不通过,请问是我的代码问题还是VS2010的问题吗?
#include<iostream>
using namespace std;
class Complex
{
public:
    Complex();
    Complex(int,int);
    ~Complex();
    Complex(double r){real=r;imag=0;}                   //此处定义转换构造函数
    friend Complex operator+(Complex &a,Complex &b);
    friend Complex operator-(Complex &a,Complex &b);
    friend Complex operator*(Complex &a,Complex &b);
    friend Complex operator/(Complex &a,Complex &b);
    friend ostream&operator<<(ostream&output,Complex&exp);
    friend istream&operator>>(istream&input,Complex&exp);
private:
    double real;
    double imag;
};

Complex::Complex(){}
Complex::Complex(int a,int b):real(a),imag(b){}
Complex::~Complex(){}

Complex operator+(Complex &a,Complex &b)
{
    return Complex(a.real+b.real,a.imag+b.imag);
}

Complex operator-(Complex &a,Complex &b)
{
    return Complex(a.real-b.real,a.imag-b.imag);
}

Complex operator*(Complex &a,Complex &b)
{
    return Complex((a.real*b.real-a.imag*b.imag),(a.real*b.imag+a.imag*b.real));
}

Complex operator/(Complex &a,Complex &b)
{
    return Complex((a.real*b.real+a.imag*b.imag)/(b.real*b.real+b.imag*b.imag),(a.imag*b.real-a.real*b.imag)/(b.real*b.real+b.imag*b.imag));
}

ostream&operator<<(ostream&output,Complex&exp)
{
    if(exp.imag<0)
        output<<exp.real<<"+"<<-exp.imag<<"i";
    else
        output<<exp.real<<"+"<<exp.imag<<"i";
    return output;
}

istream&operator>>(istream&input,Complex&exp)
{
    input>>exp.real>>exp.imag;
    return input;
}

int main()
{
    Complex a,b,c;
    double d=9;
    cin>>a;
    c=a+d;      //此处想利用转换构造函数将d转换为Complex类型(9+0i)然后利用运算符重载进行计算,但一直出错!
    cout<<c<<endl;
    system("pause");

}
搜索更多相关主题的帖子: Complex include public double friend 
2015-09-22 15:28
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
收藏
得分:0 
回复 2楼 林月儿
请问系统不能自己默认转嘛?为神马谭浩强书上说可以默认转,而我的VS2010不行!

既然还有不甘心
就还没到放弃的时候~
2015-09-22 20:49
快速回复:关于C++转换构造函数的问题求教!
数据加载中...
 
   



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

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