[英]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.