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

#include <iostream>
using namespace std;
class Complex
{public:
Complex(double r=0,double i=0):real(r),imag(i){}
Complex(int r){real=r;imag=0;}
friend Complex operator+(Complex a,Complex b);/*friend Complex operator+(Complex &a,Complex &b);这样写为什么会出错啊*/
void display();
private:
double real;
double imag;
};

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

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

int main()
{Complex c1(1.0,2.4),c2(2.3,4),c3;
c3=6+c1; /*如果我这里改成c3=c1+c2就不会错为什么呢*/
cout<<"c1+c2=";c3.display();
return 0;
}

搜索更多相关主题的帖子: Complex real double operator 类型 
2006-06-15 17:29
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
得分:0 
friend Complex operator+(const Complex &a, const Complex &b);
为什么用const

2006-06-15 18:47
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
得分:0 
只有const修饰的对象才能自动调用Complex(double x)构造函数
为什么 我还是不大明白,const不是定义常量的吗?这样一来const Complex &a, const Complex &b不变成两个常对象了吗?有什么意义呢?

2006-06-15 22:31



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




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

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