簡體   English   中英

類未命名類型錯誤

[英]Class does not name a type error

我在項目中有以下代碼:

    #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 *網格並從main運行以下代碼塊時,出現錯誤“錯誤:'MapCell'未命名類型”:

#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運行。 我閱讀了一些其他問題,大多數答案似乎都指向語法錯誤或正向聲明,這些實際上並不適合此處(除非我忽略了某些內容)

對這里發生的事情有什么想法嗎?

克里斯和偉大的狼帶我找到了解決問題的解決方案。 我需要向前聲明我的MapCell類,以便編譯器能夠鏈接到整個類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM