初学者的疑惑:“operator >>' is ambiguous”

来源:百度知道 编辑:UC知道 时间:2024/06/24 04:40:39
#include <fstream>
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int n;
class family
{
public:
int num;
string name[20],date[20];
float dianfei,shuifei,wuye;
family *next;
friend istream& operator >> (istream &input,family &a);
};

istream& operator >> (istream &input,family &a)
{
input>>a.num>>a.name>>a.date>>a.dianfei>>a.shuifei>>a.wuye>>endl;
return input;
}

void main()
{
family *head;
family *creat();
head=creat();
}

family *creat(void)
{
istream& operator >> (istream &input,family &a);
int num;
family *head;
family *p1,*p2;
n=0;
p1=p2=new family;
cin>>num;
head=NULL;
while(num!=0)
{
cin>>(*p1);
n=n+1;
if(n==1) head=

operator >>' is ambiguous
运算符 ">>" 有二义性。

改成
#include "iostream.h"试试

family *creat(void)
{
istream& operator >> (istream &input,family &a);
把这句声明去掉看看