| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 480 人关注过本帖
标题:程序错在哪里
只看楼主 加入收藏
rongaaa
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2010-12-3
结帖率:66.67%
收藏
 问题点数:0 回复次数:7 
程序错在哪里
#include<iostream>
using namespace std;

class Complex
{
public:
    Complex()  { real=0;imag=0; }
    Complex(double r,double i) { real=r; imag=i }
    Complex operator +(Complex &c2);
    friend ostream& operator<<(ostream&,Complex&);
private:
    double real;
    double imag;
};

Complex Complex::operator+(Complex &c2)
{  return Complex(real+c2.real,imag+c2.imag);  }

ostream& operator<<(ostream& output,Complex& c)
{
    output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;
    return output;
}

int main()
{
    Complex c1(2,4),c2(6,10),c3;
    c3=c1+c2;
    cout<<c3;
    return 0;
}
搜索更多相关主题的帖子: double Complex private include 
2010-12-06 10:28
xiao川
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-2
收藏
得分:0 
C:\Program Files\Microsoft Visual Studio\MyProjects\11\11.cpp(12) : error C2143: syntax error : missing ';' before '}'
C:\Program Files\Microsoft Visual Studio\MyProjects\11\11.cpp(25) : error C2248: 'real' : cannot access private member declared in class 'Complex'
        C:\Program Files\Microsoft Visual Studio\MyProjects\11\11.cpp(16) : see declaration of 'real'
C:\Program Files\Microsoft Visual Studio\MyProjects\11\11.cpp(25) : error C2248: 'imag' : cannot access private member declared in class 'Complex'
        C:\Program Files\Microsoft Visual Studio\MyProjects\11\11.cpp(17) : see declaration of 'imag'
C:\Program Files\Microsoft Visual Studio\MyProjects\11\11.cpp(33) : error C2593: 'operator <<' is ambiguous
你编译一次不就知道错误了啊!!
2010-12-06 13:58
xiao川
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-2
收藏
得分:0 
把前两行改为#include<iostream.h>就可以运行了。
2010-12-06 14:10
rongaaa
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2010-12-3
收藏
得分:0 
回复 3楼 xiao川
为什么需要这样修改才可以呢
2010-12-06 14:46
andyandy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:108
专家分:94
注 册:2009-4-28
收藏
得分:0 
先改掉这两个小错误:
1
Complex(double r,double i) { real=r; imag=i }
改为
Complex(double r,double i) { real=r; imag=i; }
2
private:
    double real;
    double imag;
去掉
private:

然后编译,报错——
<<歧义
那位高手给指导一下。
2010-12-06 16:35
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
去掉private? 哥们亏你想的出来
那和结构体有什么区别呢
我以前遇到过这样的问题   也是那个歧义   但是有的编译器不报这个错误
高人快来吧

                                         
===========深入<----------------->浅出============
2010-12-06 17:31
kittel
Rank: 2
来 自:武汉
等 级:论坛游民
威 望:1
帖 子:38
专家分:73
注 册:2010-11-19
收藏
得分:0 
回复 楼主 rongaaa
相信我,须得把友元函数的实现放在类里,我也遇到和你相同的问题。
另外,你第一处少了个分号。。
2010-12-06 18:17
andyandy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:108
专家分:94
注 册:2009-4-28
收藏
得分:0 
LZ已将问题解决。请看新帖——
iostream与iostream.h的区别
2010-12-07 08:36
快速回复:程序错在哪里
数据加载中...
 
   



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

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