怎样解决重复定义的问题?

sunson001 2003-06-04 08:43:24
我碰到这样一个问题:
文档类有两个成员,一个是类A的对象,一个是类B的对象,A有一个成员是类C的对象。
C和B都有成员是同一个结构体对象。
当然我就在C和B的头文件中引用了该结构的头文件,结果编译时报错说该结构体重定义了,细细想想确实是重定义了,那么该如何解决这类问题呢?
我现在暂时将该结构体改名后直接写在B的头文件里面,凑合着用,不知有没有美观一点的方法,谢谢。
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunson001 2003-06-05
  • 打赏
  • 举报
回复
我用的方法是在B的CPP文件中写入:#include "C.h",今天来看觉得这里的解答都比我的方法要好!谢谢了!
pzytony 2003-06-04
  • 打赏
  • 举报
回复

#pragma once

Specifies that the file, in which the pragma resides, will be included (opened) only once by the compiler in a build. A common use for this pragma is the following:

//header.h
#pragma once
// Your C or C++ code would follow:

fullsail 2003-06-04
  • 打赏
  • 举报
回复
steedhorse(晨星) 的方法是比较好的解决方案。
而方法一很通用,不依赖任何编译器。
而方法二不是所有编译器都支持。
AeLord 2003-06-04
  • 打赏
  • 举报
回复
你完全可以把C和B放在同一个头文件中定义,这样一来便可解决问题.或者如果你觉得可行的话,用继承代替这种包含关系.
晨星 2003-06-04
  • 打赏
  • 举报
回复
两个方法:
1。给每个头文件包上类似于下面的预编译指令。
#ifndef _A_HEADER
#define _A_HEADER
……
#endif

2。在每个头文件开头加上:
#pragma once

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧