这个C++问题求解答

main函数文件里:#include<iostream>#include"complex.h"usingnamespacestd;intmain(){complexc1(... main函数文件里:
#include <iostream>
#include "complex.h"
using namespace std;
int main()
{
complex c1(1,2);
complex c2(3,4);
double r=3;
fufu(c1,c2);
fushi(r,c1);
fushi(r,c2);
return 0;
}
complex类文件里:
#ifndef COMPLEX_H
#define COMPLEX_H

class complex
{
public:
complex(double reall,double imgl);
friend void fufu(complex &a,complex &b);
friend void fushi(double r,complex &p);
private:
double real,img;
};

#endif
complex.cpp文件里:
#include "complex.h"
complex::complex(double reall,double imgl)
{real=reall;
img=imgl;
}
void fufu(complex &a,complex &b)
{
cout<<"复数与复数相加后结果为:"<<a.real+b.real<<"+"<<a.img+b.img<<"i"<<endl;
cout<<"复数与复数相减后结果为:"<<a.real-b.real<<"+"<<a.img-b.img<<"i"<<endl;
}
void fushi(double r,complex &p)
{cout<<"复数与实数相加后结果为"<<p.real+r<<"+"<<p.img<<"i"<<endl;
cout<<"复数与实数相减后结果为:"<<p.real-r<<"+"<<p.img<<"i"<<endl;
}
为什么运行中显示complex.cpp文件里的cout和endl未被声明?
[Error] 'cout' was not declared in this scope
[Error] 'endl' was not declared in this scope
展开
 我来答
百度网友ec21859
2018-04-18 · TA获得超过115个赞
知道小有建树答主
回答量:127
采纳率:79%
帮助的人:107万
展开全部

程序的问题是iostream使用的地方不对。类中使用到了cout和endl,而main函数未使用。因此应在类中引入iostream,而非在main函数中引入。

这个问题的核心是,iostream要在用到它的地方引入。main函数中并未用到cout和endl等iostream中的对象,所以没必要在main函数中引入iostream。

另外,如果是在类的定义中使用cout等std命名空间的对象,最好不要用using namespace std这种全局引入方式,以免对引入类的文件产生命名空间对象名冲突。可以使用using std::cout方式仅引入cout对象。

推荐的修改方案如下:

可以去掉main函数文件语句(main函数未用到iostream):

#include <iostream>
using namespace std;

在complex.cpp文件中加入语句(仅引入std命名空间下的cout和endl对象):

#include <iostream>
using std::cout;
using std::endl;
百度网友8a46bb7
2018-04-17
知道答主
回答量:9
采纳率:0%
帮助的人:9197
展开全部
命名空间问题,用std::cout
追问
能具体给改下看看吗?谢谢啦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式