在MFC中添加结构体导致结构体无法识别

ShiningPig 发布于 2013/06/08 20:10
阅读 1K+
收藏 0

我用MFC做界面,然后在窗口中有一个算法需要处理,算法涉及到结构体还有涉及该结构体的函数,我将结构体和涉及该结构体的函数定义在类之外(全局的),然后在窗口类中利用该结构体定义其他变量,还有调用涉及该结构体的函数时报错,貌似是不能识别该结构体。

后来参照书上的例程把结构体定义在窗口类的头文件中,再在头文件中对该函数做了静态声明,再在该类的cpp文件中对函数进行了定义,再之后就能运行了……

但是WHY??我很好奇,同样C能做到的事情,为什么C++是这样的???还望各位大侠不吝赐教,小女子不胜感激~

加载中
0
z
zjwzcnjsy
是不是报重复定义的错误?
ShiningPig
ShiningPig
不是,是说没有该定义
0
地瓜儿
地瓜儿
只能说明  你没分清楚c和c++、、、进一步来说是类、、、多看看书,打打基础
ShiningPig
ShiningPig
请问你能简单的说一下么?现在即使要看书的话也有种摸不着头脑的赶脚……
ShiningPig
ShiningPig
还请大侠说明一下~!
0
平原君
平原君
好歹也贴下出错的代码
ShiningPig
ShiningPig
这个……要贴的话比较复杂。我是全局声明的结构体,然后又定义了应用到该结构体的函数,然后再窗口类的某按钮下调用了该函数,然后就报错了,说我没有定义这个XXX(结构体的名字)。
0
地瓜儿
地瓜儿
首先说说,之所以你把函数定义放在该类中后,然后实现的该函数就是此类的成员函数之一,所以在编译和运行的时候,都可以准确找到。这个与声明了静态static无关,static只是改变了函数只能调用静态函数,而不能调用非静态函数等,进一步来说才开始会出现错误还是你对c没有理解,函数不包含在该类,只要该函数放在你要调用函数之前即可,当然结构体也得放在该函数之前,毕竟c++要能对c进行拓展,要不然c++早就挂了!     本来不想回答,因为觉得你做人不太厚道,不过还是忍不住
ShiningPig
ShiningPig
小女子实在愚昧~~不知这位大侠为何会有“不厚道”之见解? PS:若两者均做成全局的,即使把结构体放在该函数之前,把函数放在窗口函数之前,也是同样报错说无法识别~~
返回顶部
顶部