我得到了18个错误。主要的是它说模板有太多参数。我做错了什么?
编辑:抱歉。这是错误:
Error 1 error C2146: syntax error : missing ',' before identifier 'maxSize' c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 30 1 OOPTest2016-QueueTemplate
Error 4 error C2146: syntax error : missing ',' before identifier 'maxSize' c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 36 1 OOPTest2016-QueueTemplate
Error 7 error C2146: syntax error : missing ',' before identifier 'maxSize' c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 55 1 OOPTest2016-QueueTemplate
Error 10 error C2146: syntax error : missing ',' before identifier 'maxSize' c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 60 1 OOPTest2016-QueueTemplate
Error 13 error C2146: syntax error : missing ',' before identifier 'maxSize' c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 89 1 OOPTest2016-QueueTemplate
Error 16 error C2146: syntax error : missing ',' before identifier 'maxSize' c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 113 1 OOPTest2016-QueueTemplate
Error 6 error C2244: 'Queue<T,maxSize>::~Queue' : unable to match function definition to an existing declaration c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 52 1 OOPTest2016-QueueTemplate
Error 15 error C2244: 'Queue<T,maxSize>::deque' : unable to match function definition to an existing declaration c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 110 1 OOPTest2016-QueueTemplate
Error 12 error C2244: 'Queue<T,maxSize>::enque' : unable to match function definition to an existing declaration c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 86 1 OOPTest2016-QueueTemplate
Error 18 error C2244: 'Queue<T,maxSize>::examine' : unable to match function definition to an existing declaration c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 122 1 OOPTest2016-QueueTemplate
Error 9 error C2244: 'Queue<T,maxSize>::getCount' : unable to match function definition to an existing declaration c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 57 1 OOPTest2016-QueueTemplate
Error 3 error C2244: 'Queue<T,maxSize>::Queue' : unable to match function definition to an existing declaration c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 32 1 OOPTest2016-QueueTemplate
Error 2 error C2977: 'Queue' : too many template arguments c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 30 1 OOPTest2016-QueueTemplate
Error 5 error C2977: 'Queue' : too many template arguments c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 36 1 OOPTest2016-QueueTemplate
Error 8 error C2977: 'Queue' : too many template arguments c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 55 1 OOPTest2016-QueueTemplate
Error 11 error C2977: 'Queue' : too many template arguments c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 60 1 OOPTest2016-QueueTemplate
Error 14 error C2977: 'Queue' : too many template arguments c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 89 1 OOPTest2016-QueueTemplate
Error 17 error C2977: 'Queue' : too many template arguments c:\users\zack\documents\visual studio 2013\projects\ooptest2016-queuetemplate\ooptest2016-queuetemplate\queue.hpp 113 1 OOPTest2016-QueueTemplate
编辑2:好的。它已被修复。在上午的帮助下,我能够得到一些可以编译的东西。我会尽力解释,以防其他人出现并看到此情况并处于类似情况。
由于Node是Queue的内部类,我不得不使用范围解析运算符(::
)从模板中访问它。我使用了Queue<typename T, int maxSize>::Node
,但typenames
导致了问题。应该说的是Queue<T, int>::Node
。我还做了其他一些错误,但他们都是愚蠢的语法错误。
答案 0 :(得分:1)
考虑一下,例如
template<typename T, int maxSize>
Queue<typename T, int maxSize>::Queue()
{
}
第一行,
template<typename T, int maxSize>
表示以下内容由typename T
和int maxSize
参数化。然而,在此之后,您的班级为Queue<T, maxSize>
,因此它应该是
template<typename T, int maxSize>
Queue<T, maxSize>::Queue()
{
}