我正在写一个文件btree.h内的B树实现类“B树”和内部btree.tem在文件btree_iterator.h外部迭代器类“btree_iterator”在文件btree_iterator.tem实现实现typedef错误:在哪里把typedef和它应该如何写?
这里是btree.h的(精简)内容:
#include "btree_iterator.h"
template <typename T> class btree
{
public:
friend class btree_iterator<T>;
typedef btree_iterator<T> iterator;
iterator find(const T& elem);
};
#include "btree.tem"
现在在执行查找功能,我在btree.tem以下存根实现:
template <typename T> iterator btree<T>::find(const T& elem) //LINE 24
{
return NULL;
}
(我只过包含行的码S是相关的我的问题)
我编译时得到以下错误:
btree.tem:24: error: expected constructor, destructor, or type conversion before 'btree'
现在我知道,这事做的事实,我已经宣布的typedef迭代器在类声明中,因此只在该块内部有作用域。但我试图在btree.tem中放入另一行typedef,但它不起作用。
应该怎么写?
为什么你要重新编辑你的语法错误? :( –
谢谢你!我不知道你必须再次使用typename,但它是有意义的 – Arvin
@ TomalakGeret'kal:因为''你不是一个语法错误 – Nawaz