第一:我的英语不是你的好。对不起。
我正在使用Ubuntu(我不知道这是否重要)并且自从我开始使用它以来我遇到了Code :: Blocks的问题。但我通过重新开放程序来修复它们。但是现在,编译代码时出现了一个非常疯狂的错误。我像往常一样包含了一个文件:
#include "GameObjectUtility.h"
我使用了类" GameObjectUtility"声明一个成员对象,就像这样:
class GameObject
{
std::vector<GameObjectUtility> uts;
// Error here:
// GameObjectUtility was not declared in this scope
}
那么,这是我的错还是Code :: Blocks有什么问题? 此外,还有一种方法可以向链接器说:首先执行此文件然后执行另一个文件吗?
感谢您的回答!
编辑:.h和.ccp文件GameObjectUtility:
所以这是GameObjectUtility.h:
#ifndef GAMEOBJECTUTILITY_H
#define GAMEOBJECTUTILITY_H
#include <string>
#include "Collision.h"
class GameObjectUtility
{
public:
GameObjectUtility();
virtual ~GameObjectUtility();
virtual void Update() = 0;
virtual void LateUpdate() = 0;
virtual void FixedUpdate() = 0;
static void SendMsg(std::string msg);
protected:
private:
virtual void GetMsg(std::string msg) = 0;
};
#endif // GAMEOBJECTUTILITY_H
在GameObjectUtility.cpp中只有两个构造函数和析构函数的空定义
答案 0 :(得分:1)
由于class GameObjectUtility
是纯虚拟的,因此无法实例化它。
您只能在std::vector<GameObjectUtility*>
课程中存储GameObject
。