当模板类实例作为另一类的静态成员变量时,怎么初始化

template<intSIZE>classPrime{...int&operator[](inti);};classFraction{staticPrime<1000>... template<int SIZE>
class Prime
{
...
int &operator[] (int i) ;
} ;

class Fraction
{
static Prime<1000> p ;
} ;

Prime<1000> Fraction::p ;
然后再F的成员函数中调用p[0]时
编译器报错 ,无法解析的外部命令
错误 2 error LNK2019: 无法解析的外部符号 "public: __thiscall Prime<1000>::operator int(void)" (??B?$Prime@$0DOI@@@QAEHXZ),该符号在函数 "private: void __thiscall Fraction::update(void)" (?update@Fraction@@AAEXXZ) 中被引用 D:\资料库\Programs\c++\library\library\Fraction.obj library
这里是operator int ();的错误
展开
 我来答
intehel
推荐于2016-06-05 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1773万
展开全部
这里明显不是说模板类定义初始化的问题,而是未找到operator[]的实现。

你这个int &operator[] (int i) ;是public的还是private的?在哪里实现的?把实现体也放到定义Prime类的头文件里。
追问
大部分的编译器
不允许模板类分开实现
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式