错误信息c++

Error Message C++

本文关键字:c++ 信息 错误      更新时间:2023-10-16

当我试图编译我的代码时,我得到了这个错误消息:

btree.h:23: error: expected unqualified-id before 'template'

它来自这一行:

template <typename T> std::ostream& operator<<(std::ostream& os, const btree<T>& tree);

除了一堆注释和几个#include库文件之外,这行上面绝对没有任何东西,它们是:

#include <iostream>
#include <cstddef>
#include <utility>
#include "btree_iterator.h"

my btree_iterator.h保存:

template <typename T>
class btree_iterator  {

}
如果有人能告诉我出了什么问题,我将不胜感激!

你忘了一个分号:

template <typename T>
class btree_iterator  {

};
 ^

注释该行,并放入一个非常简单的行,可能是typedef char mychar;。如果您在该行上得到一个错误,那么您可以找出实际的错误是在btree_iterator.h的末尾。

因为在C和c++中包含文件只是粘贴包含文件的内容。如果包含文件中有错别字,可能是缺少分号,则将其延续到原始文件中。

如果你在类中声明它,你应该模板化类本身,并直接在其中定义它。

template<typename T>
class btree {
   //your overloaded function here without the beginning template declaration
};

同样对于模板类,你不能将类严格地分成头文件(.h)和实现文件(.cpp),因为那样编译器将无法在运行时创建正确的对象,就好像它只能看到头文件一样。因此,在同一个'.h'文件中,同时编写声明和定义。