2 u012070086 u012070086 于 2015.07.15 21:43 提问

Cocos2d-X3.0引入头文件的一个小问题(希望大神帮助)

假如我现在有一个Player.h的头文件
#include "Player.h"和直接class Player导入有什么区别
问什么我的有的时候#include "Player.h"这样导入会报
(error C2011: “Player”:“class”类型重定义)错误 希望大神回答

5个回答

caozhy
caozhy   Ds   Rxr 2015.07.16 06:01

说明你的代码有变量冲突,具体看下错误的行。用命名空间区分下或者改名

Evankaka
Evankaka   Ds   Rxr 2015.07.17 21:41

不应该直接导入,#include "Player.h"、#include "Player.cpp分别写。

qq_27798553
qq_27798553   2015.12.22 18:09

(error C2011: “Player”:“class”类型重定义)
可以在.cpp中#include "Player.h" 如果有2个.h文件互相#include,特别是一个类还是另一个类的元素或者继承之类的, 也会出现之类的问题

liuhannan111
liuhannan111   2017.07.13 17:26

首先回答这个,#include "Player.h"和直接class Player导入有什么区别。#include "Player.h" 这种相当于直接将 "Player.h" 文件的内容直接粘贴过来了,class Player只是类声明, 声明以后编译器则知道存在Player这样一个类。#include "Player.h" 编译器则知道了Player 类的全部信息了,包括包含哪些变量,哪些函数,这个Player 的对象需要占用多少的内存空间。(error C2011: “Player”:“class”类型重定义)出现这个错误,说明你没有加入 #pragma once,或者没有使用

    #ifndef __COCOS2D_H__
    #define __COCOS2D_H__
    #endif // __COCOS2D_H__

防止重复引用。你那个报错应该就是头文件被重复包含导致的。

liuhannan111
liuhannan111   2017.07.13 17:27

如果对你有帮助,望采纳

Csdn user default icon
上传中...
上传图片
插入图片