[英]How to implement Inheritance: error: conflicting declaration ‘typedef struct
我有 :
my_entity.h
typedef struct {
long _id;
char *_myEntityType;
char *_myEntitySubType;
long _myEntityGUID;
long _myEntityOwnerGUID;
long _myEntityContainerGUID;
} MyEntity;
typedef struct {
MyEntity *_myEntity;
} MyContainerEntity;
尝试运行项目时出现以下错误:
/my_entity.h: error: conflicting declaration ‘typedef struct MyContainerEntity MyContainerEntity’
} MyContainerEntity;
^
我想念的是什么,还是做错了?
谢谢大家。
我使用了一种更简单的方法(避免使用ths结构在一行中执行多个步骤),并且以下文件没有问题:
my_entity.h
struct EntityStruct {
long _id;
char *_myEntityType;
char *_myEntitySubType;
long _myEntityGUID;
long _myEntityOwnerGUID;
long _myEntityContainerGUID;
} ;
typedef struct EntityStruct MyEntity ;
typedef struct {
MyEntity *pointer2MyEntity;
} MyContainerEntity;
main.c
#include <stdio.h>
#include "my_entity.h"
int main()
{
MyEntity firstEntity;
MyContainerEntity containerEntity;
containerEntity.pointer2MyEntity = &firstEntity;
return 0;
}
my_entity.h的替代内容
typedef struct EntityStruct {
long _id;
char *_myEntityType;
char *_myEntitySubType;
long _myEntityGUID;
long _myEntityOwnerGUID;
long _myEntityContainerGUID;
} MyEntity ;
typedef struct {
MyEntity *pointer2MyEntity;
} MyContainerEntity;
好的,我承认我弄错了,我认为有必要为该结构使用一个单独的不同名称,但是即使OP提供的代码也可以工作(我最初并未对其进行测试,因为我先对其进行编辑并对其进行了测试。版本)。 因此,由于他没有提供.h和main()的完整文件,所以我想我们无法帮助他。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.