下面的代码C++编译在Windows上,但错误编译的Visual Studio 2012下就好了快递,Windows 8的下OS X GCC
但在我的首选平台,Eclipse的朱诺,GCC 4.2 OS X 我收到以下错误:
../src/Test.cpp:20:错误: '的std :: istream的& TestNS ::运算符>>(的std :: istream的&,TestNS ::测试&)' 应该被宣布里面' TestNS'
#include <cstdio>
#include <cstdlib>
#include <iostream>
using std::istream;
namespace TestNS
{
class Test
{
friend istream &operator>>(istream &in, Test &value);
public:
Test(double real, double image);
private:
double real;
double image;
void initialize(double real, double image);
};
}
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include "Header.h"
using std::istream;
using namespace TestNS;
TestNS::Test::Test(double real = 0.0, double image = 0.0) : real(real), image(image)
{
}
void TestNS::Test::initialize(double real, double image)
{
this->real = real;
this->image = image;
}
istream& TestNS::operator>> (istream &in, TestNS::Test &value)
{
value.real = 10.0;
value.image = 10.0;
return in;
}
int main()
{
}
任何帮助将是最有帮助的。 从事学校项目的作业。
TestNS不是类,它是头文件中的名称空间,教授指出这是需要的。 – 2013-05-04 04:36:54
赋值表示必须是朋友函数。 – 2013-05-04 04:37:37
没有TestNS ::函数是全局函数不是朋友函数,代码编译在Windows,Visual Studio中,但不是Eclipse GCC OS X – 2013-05-04 04:42:54