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

前端之家收集整理的这篇文章主要介绍了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

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

猜你在找的C&C++相关文章