#ifndef UNO_ACTION_
#define UNO_ACTION_
namespace Uno
{
namespace Game
{
class Game;
}
} // namespace
namespace Uno
{
namespace Action
{
using ::Uno::Game::Game;
class Action
{
public:
virtual bool isDisposeable() = 0;
virtual void takeAction(Game* game) = 0;
virtual ~Action() {}
};
}
}
#endif
我在ubuntu 12.04上编译代码并返回错误集:
action.h:4:1: error: unknown type name ‘namespace’
action.h:4:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
action.h:8:1: error: unknown type name ‘namespace’
action.h:8:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
我不知道如何解决这些错误。
答案 0 :(得分:18)
听起来您正在尝试使用C编译器编译C ++代码。尝试使用g++
代替gcc
并为您的文件提供C ++扩展名,例如.cpp
(而不是.c
)。
答案 1 :(得分:1)
答案 2 :(得分:0)
我有一个类似的问题,发现了这个问题,但是解决方案与我的不完全匹配,所以我在这里添加我的。
就我而言,我在.cpp文件和.c文件中包含头文件。 解决方案是拆分标头的名称空间部分,因为显然仅在.cpp文件中需要。