类没有命名类型错误

时间:2013-12-13 05:43:01

标签: c++ class

我在项目中有以下代码:

    #ifndef MAP_H
    #define MAP_H

    #include <string>
    #include "MapCell.h"

    using namespace std;

    class Map{
    public:
        Map();
        Map(int, int);
        Map(string);
        virtual ~Map();
    private:
        int grid_size;
        MapCell * grid;

    };

    #endif

当我去编译时,我得到错误“错误:'MapCell'没有命名类型”当我注释掉MapCell *网格并从main运行下一个代码块时:

#include <iostream>
#include <cstdlib>

#include "MapCell.h"

using namespace std;


int main() {

    MapCell * test_var;

    test_var = new MapCell();

    delete test_var;


    cout << "Press enter to end process...";
    cin.get();
    cin.get();
    return 0;
}

一切正常。我知道我的MapCell.h和.cpp文件位于正确的位置,我猜测编译器可以看到它们,因为它可以从main运行。我读了一些其他问题,大多数答案似乎都指向语法错误或前向声明,这些都不适合这里(除非我忽略了什么)

关于这里发生了什么的任何想法?

1 个答案:

答案 0 :(得分:1)

克里斯和大狼带领我找到解决问题的解决方案。我需要转发声明我的MapCell类,以便编译器能够链接到整个类。