c - 如何实现继承: error: conflicting declaration ‘typedef struct

标签 c oop inheritance 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;
   ^

我错过了什么或做错了什么?

提前谢谢大家。

最佳答案

我使用了一种更简单的方法(避免在一行中使用这些结构执行多个步骤)并且使用以下文件没有问题:

我的实体.h

struct EntityStruct {
    long _id;
    char *_myEntityType;
    char *_myEntitySubType;
    long _myEntityGUID;
    long _myEntityOwnerGUID;
    long _myEntityContainerGUID;
} ;

typedef struct EntityStruct MyEntity ;
typedef struct {
    MyEntity *pointer2MyEntity;
} MyContainerEntity;

主.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() 的完整文件,我想我们帮不了他。

关于c - 如何实现继承: error: conflicting declaration ‘typedef struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454589/

相关文章:

c++ - 当您不需要从模板继承时,如何从模板类继承?

java - 当接口(interface)完全抽象时,为什么说接口(interface)支持多重继承?

c - 如何使用 OpenMP 在顺序循环中嵌套并行循环

c - 如果我们将静态变量定义为全局变量,那么它的作用域应该在该文件内,但在这里我得到了不同的结果

android - 使用 ARM 代码的 hello world jni

c - Xcode 在使用引用时不会编译 C 函数签名

php - $a = new $b() 在 PHP 中是什么意思?

c++ - 覆盖矩阵中 vector 对象的代理类中的赋值运算符?

c++ - 类型删除的 std::function 与虚函数调用的开销

javascript - 在特定实例上实现方法?