首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

看看这个异常'complex' : use of class template requires template argument list

2012-04-03 
看看这个错误complex : use of class template requires template argument list原程序如下:#includeio

看看这个错误'complex' : use of class template requires template argument list
原程序如下:
#include   <iostream>
#include   <complex>
using   namespace   std;

class   Mycomplex   :   public   complex
{
public:
Mycomplex():complex(0,0){}
Mycomplex()(double   r,double   i):complex(r,i){}
friend   int   operator   >   (Mycomplex&   c1,Mycomplex&   c2);
};

int   operator   > (Mycomplex&c1,Mycomplex&   c2)
{
return   abs(c1)> abs(c2);
}

template   <class   T>
T&   Bigger   (T&   a,T&   b)
{
return   (a> b)   ?   a   :   b;
}

int   main()
{
int   i1   =   10,   i2   =   20,   i3;
double   d1   =   1.1,d2   =   2.2   ,   d3;
Mycomplex   c1(1,2),c2(3,4),c3;
i3   =   Bigger(i1,i2);
d3   =   Bigger(d1,d2);
c3   =   Bigger(c1,c2);
return   0;
}

编译错误如下:
E:\C++Language\WorkArea\Test070504\testmain.cpp(7)   :   error   C2955:   'complex '   :   use   of   class   template   requires   template   argument   list
                c:\program   files\microsoft   visual   studio\vc98\include\complex(267)   :   see   declaration   of   'complex '
E:\C++Language\WorkArea\Test070504\testmain.cpp(7)   :   fatal   error   C1903:   unable   to   recover   from   previous   error(s);   stopping   compilation

[解决办法]

1
std::complex是个模板类!!

class Mycomplex : public complex
====>
class Mycomplex : public complex <double>

2.

Mycomplex()(double r,double i):complex(r,i){}
====>
Mycomplex(double r,double i):complex(r,i){}

3.
friend int operator > (Mycomplex& c1,Mycomplex& c2);
===>
friend bool operator > (Mycomplex& c1,Mycomplex& c2);



[解决办法]
use of class template requires template argument list
编译信息说得挺明白的,模板类的使用需要模板参数list
[解决办法]
[size=14px][/size]谢谢高手能给一个完整的例子,我在用模板时也出现了问题,我自己设计了一个模板,但也出现了一楼那样的错误.
[解决办法]
你的实现函数是不是要加个类作用域:: 你的函数是在类外实现的呀

热点排行