所以我有一个学校项目,我必须制作一个随机地牢爬行器。我对C++很陌生,我有一个错误,我知道问题是什么,但我不知道如何正确解决它。类“classname”没有成员“函数”
这里是东西:
在我商会类我想要一个指针DungeonLayer类。但是我不能将DungeonLayer.h包含到Chamber.h中,因为DungeonLayer.h已经包含Chamber.h,所以我得到一个异常。
如何让DungeonLayer类可以从Chamber类访问?
文件:
DungeonLayer.h
#pragma once
#include <vector>
#include "Chamber.h"
class DungeonLayer {
public:
DungeonLayer(std::string text, int l);
Chamber findChamber(int x2, int y2);
std::vector<Chamber> chambers;
void generateDungeonLayer();
bool chamberExists(int x2, int y2);
};
Chamber.h
#pragma once
#include <vector>
#include "Enemy.h"
#include "Hero.h"
class DungeonLayer {
};
class Chamber {
public:
Chamber(std::vector<Chamber>* dungeonLayer, int ammountOfChambers);
DungeonLayer *layer;
Chamber *nextChamber;
.......
Chamber* Chamber::getNextChamber();
void moveToChamber();
private:
bool visited;
};
每当我设置DungeonLayer(层)的指针,我想在调用一个函数它会给出错误:
示例
layer->findChamber(0,0);
错误:
"class "DungeonLayer" has no member "findChamber" CPPAssessment Chamber.cpp"
这是显而易见的,因为该类DungeonLayer在Chamber.h有什么也没有。但是我怎样才能使DungeonLayer可以从Chamber上访问?
您曾两次定义的类'DungeonLayer'。如果你想提前宣布它,那不是你怎么做的。 – krzaq
你是什么意思?我已经在Dungeonlayer.h和Chamber.h中声明了DungeonLayer或者? – Jelmer
第http://stackoverflow.com/questions/1410563/what-is-the-difference-between-a-definition-and-a-claclaration – krzaq