怪!!

slihai 2000-05-30 11:01:00
我在一个头文件(struct1.h)中定义一个结构:
struct mystruct
{int wang;
char jun;
bool hai;
};

然后想在两个自定义的类中使用(在这两个类中已经#include "struct1.h")它
但是编译是说重复定义(error C2011: 'mystruct' : 'struct' type redefinition),请问是为什么?



...全文
260 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
slihai 2000-05-30
  • 打赏
  • 举报
回复
kenny
真诚地谢谢你的指教!!

我原来是用VB编程的,是最近才开始学习vc!没有人指导,什么都要自己摸索,所以效果
很差,我想拜你为师,向你学习,可否?我是很诚心的!!
Kenny 2000-05-30
  • 打赏
  • 举报
回复
你的程序当然是错误的啦。类中的成员变量是封装在一个类中的,而你对extern mystruct A的声明是全局变量,连接时当然不会找到。
正确的方法有两种:一、两个源程序都直接使用mystruct A,当然一边要加extern;
二、两个源程序都使用class C。
你的使用方法我不清楚,但有一点可能肯定,你对C的struct的概念就不熟,对C++中class的定义以及class与struct的区别和关系更不清楚。建议找本参考书看看相关章节。
slihai 2000-05-30
  • 打赏
  • 举报
回复
kenny你是对的,谢谢!加分30!

可否帮我看看这个问题:
我在一个类的cpp文件中定义:
extern mystruct A; (但是这里编译不过)
想和另外一个类中的 mystruct A;相通用
比如
class C:public CObject
{
public
mystruct A;
}

这样是不是不对?
出错信息为:
ormListDlg.obj : error LNK2001: unresolved external symbol "struct mystruct A" (?A@@3Umystruct@@A)
Debug/FormList.exe : fatal error LNK1120: 1 unresolved externals
xielm 2000-05-30
  • 打赏
  • 举报
回复
if you use mfc , then write the struct in stdafx.h

else use kenny's method
slihai 2000-05-30
  • 打赏
  • 举报
回复
struct1.h不算是公用的头文件吗?
noname1 2000-05-30
  • 打赏
  • 举报
回复
fffffff
Kenny 2000-05-30
  • 打赏
  • 举报
回复
在struct1.h的开始加上:
#ifndef __MYSTRUCT__
#define __MYSTRUCT__
在结尾加上:
#endif
xielm 2000-05-30
  • 打赏
  • 举报
回复
寫在一個兩個類公用的頭文件好了。
Kenny 2000-05-30
  • 打赏
  • 举报
回复
sanhan说得对。你可看看APPWIZARD生成的头文件,它的命名规则很好,保证版本一致性的同时,也保证不重复。
sanhan 2000-05-30
  • 打赏
  • 举报
回复
没别的意思,就是防止重复引用。
养成个好习惯,以后会少些麻烦。
fxRen 2000-05-30
  • 打赏
  • 举报
回复
我也想学VC,
kenny请问
#ifndef __MYSTRUCT__
#define __MYSTRUCT__
在结尾加上:
#endif
这些都是啥意思??__MYSTRUCT__有啥作用???
yueyue 2000-05-30
  • 打赏
  • 举报
回复
哇,好厉害!想当年我还不知道计算机为何物,我是从96年下半年开始学C语言的,学C++不到一年,甚至只是看了几遍C++的几个特点。所以呢,到现在我还不清楚什么是OOP,什么是WINDOWS程序,若您对C++及WINDOWS有心得。please tell me!
Kenny 2000-05-30
  • 打赏
  • 举报
回复
不用那么客气。我从89年开始学习C,从93年学C++到现在,可以说完全是靠自学。只要多写程序,多看MFC的源程序,去用心体会微软那些程序员的编程方法,你会学得好的。到现在为止,我也有许多不明白的地方,只不过对C和C++有较坚实的基本功罢了。当老师,我不会;有问题尽管问。

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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