所以我在index.h文件中声明了我的类“index”:
#ifndef INDEX_H
#define INDEX_H
#include <iostream>
#include <sstream>
#include "word.h"
#include "heap.h"
using namespace std;
class index
{
public:
index();
~index();
index(const index &other);
index& operator = (const index &other);
void push(word<string> w);
word<string> pop();
private:
heap<word<string> > orchard[26];
void nukem();
void copy(const index &other);
};
#endif
随后的定义:
#include "index.h"
index::index()
{}
index::~index()
{
nukem();
}
index::index(const index &other)
{
copy(other);
}
index& index::operator = (const index &other)
{
if(this != &other)
copy(other);
return *this;
}
void index::push(word<string> w)
{
orchard[w.data[0]]<<w;
}
word<string> index::pop()
{
word<string> popped;
int i = 0;
for(; orchard[i].empty(); i++);
orchard[i]>>popped;
return popped;
}
void index::nukem()
{
for(int i = 0; i < 26; i++)
orchard[i].clear();
}
void index::copy(const index &other)
{
for(int i = 0; i < 26; i++)
orchard[i] = other.orchard[i];
}
在赋值运算符的定义中,我从xcode得到了这个编译器错误:
'&amp;'之前的预期构造函数,析构函数或类型转换令牌
这让我觉得这是一个类型问题,所以我删除了'&amp;'并尝试重新编译,这在同一行上给了我这个错误:
'index'不是类型
以下代码的第一行显示两个错误:
index& index::operator = (const index &other)
{
if(this != &other)
copy(other);
return *this;
}
为什么编译器不能识别索引是头文件中声明的类型?我回顾过以前写过的课程,看不出我出错的地方。我认为这可能是一个傻瓜错误,但我没有看到它。感谢所有帮助。