C++ C++;:编译错误:在‘;之前应为初始值设定项<’;代币

C++ C++;:编译错误:在‘;之前应为初始值设定项<’;代币,c++,templates,compiler-errors,g++,C++,Templates,Compiler Errors,G++,这是一个与家庭作业相关的问题,但编译器问题不是家庭作业,我已经实现了我需要编写的函数,现在只需要找出这个编译器错误。 我已经尝试过搜索,到目前为止,我得到的结果与我的问题很接近,但不符合导致我的编译器错误的原因 从二进制树.h: #include <iostream> #include "orderedLinkedList.h" using namespace std; // Definition of the Class template <class elemType&g

这是一个与家庭作业相关的问题,但编译器问题不是家庭作业,我已经实现了我需要编写的函数,现在只需要找出这个编译器错误。
我已经尝试过搜索,到目前为止,我得到的结果与我的问题很接近,但不符合导致我的编译器错误的原因

二进制树.h

#include <iostream>
#include "orderedLinkedList.h"

using namespace std;
// Definition of the Class
template <class elemType>
class binaryTreeType
{

[rest of definition]

public:
[rest of declarations]
    void createList(orderedLinkedList<elemType>& list);
[rest of declarations]
private:
    void inorderToList(nodeType<elemType> *p, orderedLinkedList<elemType>& tList) const; 
[.... then the definitions]
template <class elemType>
void bSearchTreeType<elemType>::createList(orderedLinkedList<elemType>& tList)
{
    inorderToList(this->root, tList);
}

// copies to list
template <class elemType>

void bSearchTreeType<elemType>::inorderToList(nodeType<elemType> *p, 
                                              orderedLinkedList<elemType>& tList) const
{
    if (p != NULL)
    {
        inorder(p->lLink);
        tList.insert(p->info);
        inorder(p->rLink);
    }   
 }
#包括
#包括“orderedLinkedList.h”
使用名称空间std;
//类的定义
样板
类二进制树类型
{
[定义的其余部分]
公众:
[其余声明]
作废createList(orderedLinkedList&list);
[其余声明]
私人:
void inordertolost(nodeType*p、orderedLinkedList和tList)常量;
[……然后是定义]
样板
void bSearchTreeType::createList(orderedLinkedList&tList)
{
索引列表(此->根目录,tList);
}
//抄送名单
样板
void bSearchTreeType::索引列表(节点类型*p,
orderedLinkedList和tList)常量
{
如果(p!=NULL)
{
顺序(p->lLink);
t列表插入(p->info);
顺序(p->rLink);
}   
}
我收到错误信息:


binaryTree.h:250:error:在“之前应该是初始值设定项好的,找出我做错了什么

我最初将模板放在派生类(bSearchTreeType)中,但在将其移动到父类中时忘记了更新方法定义

因此,新代码(第250行和第257行):

模板
//下面是250
void binaryTreeType::createList(orderedLinkedList&tList)
{
[…与原帖子相同]
}
样板
//下面是257
void binaryTreeType::inorderToList(节点类型*p,
orderedLinkedList和tList)常量
{
[…与原帖子相同]
}

使用名称空间std;
您不应该将其放在头文件中,但是如果您从其他地方将
std::list
包含在头文件中,那么这样做可能会导致问题。您已经显示了
binaryTreeType
的部分声明和
bSearchTreeType
的函数定义。这是故意的吗他键入了相关的?@etheranger:不是故意的,只是为了节省空间和显示相关代码,显示整个内容和/或orderedLinkedList.h文件是没有帮助的?@shuttle87:只是搜索了代码,没有包含列表(我们为该类从头开始编写),这让我意识到我可能有名称冲突,并将参数名称从list更改为tList,仍然收到相同的错误。@WoodenCode,只是指出这可能是一个问题,因此该准则存在。如果你想减少键入,只需通过做一些事情将你正在使用的东西引入命名空间g类似于
使用std::cout
而不是
使用名称空间std;
这里有更多信息:
template <class elemType>
// below is 250
void binaryTreeType<elemType>::createList(orderedLinkedList<elemType>& tList)
{
[... same as in original post]
}

template <class elemType>
// below is 257
void binaryTreeType<elemType>::inorderToList(nodeType<elemType> *p, 
                orderedLinkedList<elemType>& tList) const
{
[... same as in original post]
}