c – 错误C2011:’XX’:’类’类型重新定义

我有这段代码的编译错误(C2011).我不知道它有什么问题.

命名空间(Ogre)没有PlaneMovement的定义.我也尝试了一个不同的名字,但仍然是同样的错误.

#include <Ogre.h>

using namespace Ogre;

class PlaneMovement
{
public:
    PlaneMovement(Degree startingAngle,Real velocity = 2,Real gravity = 2);
    Vector2 updateMovement(const FrameEvent& evt);
private:
    Degree currentAngle;
    Real currentVelocityX;
    Real currentVelocityY;
    Real gravity;
    bool top;
};

解决方法

包括警卫:
#ifndef FILE_H
#define FILE_H

//file contents here

#endif

头文件应该包含这个确切原因的保护 – 多个包含在同一个翻译单元中可以导致多重定义.

替代方案是使用

#pragma once

但并非所有编译器都支持此功能.

相关文章

首先GDB是类unix系统下一个优秀的调试工具, 当然作为debug代...
1. C语言定义1个数组的时候, 必须同时指定它的长度.例如:int...
C++的auto关键字在C+⬑新标准出来之前基本...
const关键字是用于定义一个不该被改变的对象,它的作用是告诉...
文章浏览阅读315次。之前用C语言编过链表,这几天突然想用C+...
文章浏览阅读219次。碰到问题就要记录下来,防止遗忘吧。文章...