c++ 输入输出提取符问题 运行错误 高手帮忙 多谢!

来源:百度知道 编辑:UC知道 时间:2024/06/04 12:58:25
.h文件#include"iostream.h"
class complex
{private:
int real;
int imag;
public:
complex();
complex(int real,int imag);
friend ostream& operator<<(ostream& cout,complex cp);
friend istream& operator>>(istream& cout,complex& cp);
virtual ~complex();

};
.cpp文件complex::complex(int real,int imag)
{

}

complex::~complex()
{

}
main函数#include "stdafx.h"
#include"iostream.h"
#include"complex.h"

ostream& operator<<(ostream& cout,complex cp)
{cout<<"("<<cp.real<<","<<cp.imag<<")"<<endl;
return cout;
}

istream& operator>>(istream& cout,complex& cp)
{cout<<"intput cp.real & cp.imag"<<endl;
cin>>cp.real>>cp.imag;
return cin;
}

int main()

istream& operator>>(istream& cout,complex& cp)

改成

istream& operator>>(istream& cin,complex& cp)

当然,这个函数本身这样写就没什么意义。。。

你的程序最终被改成了这个样子。有几个地方你注意:
1,VC6至少要打补丁到SP6,否则友元函数那里不过。
2,<<操作,应该用一个引用;
3,应该提供一个默认构造函数,我是用默认参数的办法处理的;
4,很多参数名字和全局变量名重复,我不太喜欢,所以都改了

#include <iostream>

using namespace std;

class mycomplex
{
private:
int real;
int imag;
public:
mycomplex(int real=0,int imag=0);
virtual ~mycomplex();

friend ostream& operator<<(ostream& co,mycomplex& cp);
friend istream& operator>>(istream& ci,mycomplex& cp);

};

mycomplex::mycomplex(int vreal,int vimag)
{
real = vreal ;
imag = vimag ;
}

mycomplex::~mycomplex()
{

}

ostream& operator<<(ostream& co,mycomplex& cp)
{
co<<"("