为什么我的编译器不将类“索引”识别为类实现中的类型

时间:2013-10-28 22:47:40

标签: c++ xcode

所以我在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;
}

为什么编译器不能识别索引是头文件中声明的类型?我回顾过以前写过的课程,看不出我出错的地方。我认为这可能是一个傻瓜错误,但我没有看到它。感谢所有帮助。

0 个答案:

没有答案