| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 970 人关注过本帖
标题:[求助]List出了什么问题
只看楼主 加入收藏
eecchhoo
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-2-24
收藏
 问题点数:0 回复次数:11 
[求助]List出了什么问题

这是一段从别处拷来的一元多项式的代码,请大虾看一下

#include<iostream.h>
#include<list>
struct Term
{
float coef;
int exp_x,exp_y;
Term(float c,int e1,int e2){coef=c;exp_x=e1;exp_y=e2;}
Term(){}

friend int operator==(const Term & L,const Term & T)//项序比较,按x的升幂排列
{
return (L.exp_x==T.exp_x)&&(L.exp_y==T.exp_y);
}
friend int operator >(const Term & L,const Term & T)
{
return ((L.exp_x>T.exp_x)||(L.exp_x==T.exp_x)&&(L.exp_y>T.exp_y));

}
friend int operator <(const Term & L,const Term & T)
{
return ((L.exp_x<T.exp_x)||(L.exp_x==T.exp_x)&&(L.exp_y<T.exp_y));
}
friend Term & operator+=(Term & L,const Term & T)//幂指数对应相同,则系数相加
{
L.coef+=T.coef; return L;
}

friend istream & operator>>(istream & is,Term & T);
friend ostream & operator<<(ostream & os,const Term & T);
friend char compare(const Term & P,const Term & T);
friend Is_Empty(const Term & T){return !T.coef;}

};

char compare(const Term & P,const Term & T)
{
if(P==T) return'=';
else if(P<T) return '<';
else return'>';
}

istream & operator>>(istream & is,Term & T)
{
cout<<"Please input a coefficient!\n";
is>>T.coef;
cout<<"Please input the power of x!\n";
is>>T.exp_x;
cout<<"Please input the power of y!\n";
is>>T.exp_y;
return is;
}

ostream & operator<<(ostream & os,const Term & T)
{
if(T.coef>0) os<<'+';
os<<T.coef<<"x^"<<T.exp_x<<"y^"<<T.exp_y;
return os;
}

template<class ElemType>
class Polynomial
{
public:
Polynomial(const ElemType & P){Stop_flag=P;}
Polynomial(){}
~Polynomial(){}
Polynomial & operator=(const Polynomial & T);
Polynomial & operator+(const Polynomial & T);
friend istream & operator>>(istream & is,Polynomial<ElemType> & T);
friend ostream & operator<<(ostream & os,const Polynomial<ElemType> & T);
private:
List <ElemType> poly;//???????????????????????
//Term<T>*
ElemType Stop_flag;//用于判断多项式结束


};

template<class ElemType>
istream & operator>>(istream & is,Polynomial<ElemType> & T)
{
ElemType elem;
ListItr<ElemType>Itr(T.poly);
cout<<"Creat a Polynomial!\n";
cout<<"Please input coeffcient and power one by one!\n"
while(cin>>elem,!equal_stop(elem,T.Stop_lag)) Itr.Insert(elem);
return is;

}


编译的时候这样报错:
syntax error :missing ';' before '<'

请问:这是不是List引起的,或者应该怎么改动,
我对这一块C++的内容很不了解
谢谢了

搜索更多相关主题的帖子: List 
2006-02-27 09:41
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
list应该小写吧?

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-27 10:34
eecchhoo
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-2-24
收藏
得分:0 
把它改成小写还是通不过
不知道为什么。。
2006-02-27 10:44
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
添上 using namespace std;呢?

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-27 10:46
eecchhoo
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-2-24
收藏
得分:0 
添上还是不行,真是好奇怪,屏蔽掉那一行有list的就可以了
2006-02-27 11:03
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
我把这段代码copy了,把List换成list,编译可以通过,就是缺少main函数而已。

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-27 11:21
eecchhoo
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-2-24
收藏
得分:0 

辛苦了!

天哪,不知道为什么,我就是编译通不过,还是原来的样子
于是我把list那一行去掉,并且屏蔽掉下一段代码,加一个main,出现这样的报错:
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/polynomial.exe : fatal error LNK1120: 1 unresolved externals
这是代码:
前面相同的省略了
template<class ElemType>
class Polynomial
{
public:
Polynomial(const ElemType & P){Stop_flag=P;}
Polynomial(){}
~Polynomial(){}
Polynomial & operator=(const Polynomial & T);
Polynomial & operator+(const Polynomial & T);
friend istream & operator>>(istream & is,Polynomial<ElemType> & T);
friend ostream & operator<<(ostream & os,const Polynomial<ElemType> & T);
private:
//list <ElemType> poly;
ElemType Stop_flag;//用于判断多项式结束


};
/*
template<class ElemType>
istream & operator>>(istream & is,Polynomial<ElemType> & T)
{
ElemType elem;
ListItr<ElemType>Itr(T.poly);
cout<<"Creat a Polynomial!\n";
cout<<"Please input coeffcient and power one by one!\n"
while(cin>>elem,!equal_stop(elem,T.Stop_lag)) Itr.Insert(elem);
return is;

}*/

int main()
{
int m=1;
return m;
}

2006-02-27 11:44
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 

或者是你的编译器的问题,我用Borland C++,没有问题。
看看是不是工程建错了


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-27 11:49
西部天狼
Rank: 1
等 级:新手上路
帖 子:95
专家分:0
注 册:2006-2-23
收藏
得分:0 
你创建的是不是Windows应用程序工程,需要WindMain函数
根据你这个程序,可能应该是创建Windows控制台程序。在VC中这两个向导很近,很容易选错。重新创建试试吧

学习-->编程-->交流-->再学习-->再编程-->再交流
2006-02-27 12:28
eecchhoo
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-2-24
收藏
得分:0 
我创建的是Win32 Console Application
2006-02-27 13:00
快速回复:[求助]List出了什么问题
数据加载中...
 
   



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

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