CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

头文件中一个类内部用到的结构体,应该在这个头文件的什么位置声明?如何声明?

楼主littlepig_2002(小朱)2005-06-04 19:28:52 在 VC/MFC / 基础类 提问

我在XXX.h中声明了一个结构体  
  struct   EXTRA_INFO  
  {  
  CString                                     str;              
   
  }   EXTRAINFO;  
   
  class   CTreeViewEx  
  {  
  //Item额外信息数组  
  EXTRAINFO   *                                 m_pEI;  
                     
   
  };  
   
  在类内使用这个结构体,但是编译器提示出错,如下:  
  Linking...  
  TreeViewEx.obj   :   error   LNK2005:   "struct   EXTRA_INFO   EXTRAINFO"   (?EXTRAINFO@@3UEXTRA_INFO@@A)   already   defined   in   MainFrm.obj  
  Debug/GUI.exe   :   fatal   error   LNK1169:   one   or   more   multiply   defined   symbols   found  
  Error   executing   link.exe.  
   
  GUI.exe   -   2   error(s),   0   warning(s)  
   
   
  应该如何解决? 问题点数:26、回复次数:3Top

1 楼krh2001(边城浪子)回复于 2005-06-04 19:33:08 得分 12

typedef   struct   EXTRA_INFO  
  {  
  CString                                     str;              
   
  }   EXTRAINFO;  
   
  Top

2 楼littlepig_2002(小朱)回复于 2005-06-04 19:34:26 得分 0

可以的。我好像记得以前写程序的时候没有加过typedef。Top

3 楼newbiestar()回复于 2005-06-04 19:38:11 得分 14

这个是因为头文件的重复包含引起的,因为你这样的定义产生了一个struct变量,而这个变量的定义被重复包含就会出问题了……  
   
  楼上的方法可以解决。另外,如果这个struct你仅仅用在你的类里面,那么直接定义对象就可以了,如果还需要有一个名字的话,就放在private:标记后面,然后该怎么写就怎么写,这样就不会被外部其他的代码引用到了。  
   
  如果要把这个放出去被其他的代码使用的话,也只要放入public:标记后面,然后引用这个类型的时候加上类的名称,譬如  
  class   A  
  {  
  public:  
      struct   B{int   C;}D;  
  };  
  struct   A::B   E;//加上struct关键字以符合struct的语义……Top

相关问题

  • Paradox 数据库文件(*.db)的文件头结构 ?????
  • 哪位大侠知道数据库*.DBF文件的文件头结构?
  • 有谁知道pe文件头结构中import表的细节?
  • [Q]读文件时怎样将流当前位置指回文件头
  • 在AIX下,怎样设置自定义头文件地位置
  • 请教share_info_50这个结构在那个头文件中定义
  • 我怎么知道某个结构定义在哪个头文件中?
  • 请问_dosdate_t这个结构是在那个头文件里被定义的?
  • 怎样获得自己文件头结构中的某个参数的值?
  • 请问:.rc,.res文件结构(详细)?.exe中资源存储的确切方式?位置?

关键词

  • 文件
  • 结构
  • extrainfo
  • 结构体
  • 声明
  • extra
  • 类
  • struct
  • info
  • error

得分解答快速导航

  • 帖主:littlepig_2002
  • krh2001
  • newbiestar

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo