欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【无法将函数定义与现有的声明匹配 问题的解决办法 分享】,下面是详细的讲解!
无法将函数定义与现有的声明匹配 问题的解决办法 分享
今晚在整MFC,遇到了以下的问题。
d:\我的文档\visual studio 2008\projects\virtualosc\arraylisttype.h(171) : error C2244:
“arrayListType<elemType>::maxListSize”: 无法将函数定义与现有的声明匹配
1> d:\我的文档\visual studio 2008\projects\virtualosc\arraylisttype.h(37) : 参见
“arrayListType<elemType>::maxListSize”的声明
1> 定义
1> 'int arrayListType::maxListSize(void)'
1> 现有声明
1> 'int arrayListType<elemType>::maxListSize(void)'
想了挺久的都没能解决,后来在百度的帮助下解决了。问题其实很好解决,只是自己没想到,但是没办法,没想到就是没想到。现在把问题记录下来,下次再出现这种问题就能快速解决。解决方法在下面:
在arraylisttype.h前加入:
#ifndef ARRAYLISTTYPE_H
#define ARRAYLISTTYPE_H
在arraylisttype.h末尾加入:
#endif
这样头文件arraylisttype.h就不会被重复包含而导致编译错误了。现在,对上面的语句进行解释。
#ifndef ARRAYLISTTYPE_H 的意思是“如果没有定义宏 ARRAYLISTTYPE_H”
#define ARRAYLISTTYPE_H 的意思是“定义宏 ARRAYLISTTYPE_H”
#endif 的意思是“结束”
总的说就是,假如标识符ARRAYLISTTYPE_H没有被定义,那么定义标识符ARRAYLISTTYPE_H,并让#ifndef和#endif之间的代码被编译处理。如果头文件ARRAYLISTTYPE_H 被第二次包含,语句#ifndef就会失效,并且#endif之前的全部语句将被编译器忽略。————Data Structure Using C++,D.S.Malik
以后自己再写头文件一定记得要添加上面的预处理命令
关于无法将函数定义与现有的声明匹配 问题的解决办法 分享的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【服务器】asp.net页面状态管理cookie和服务器状
- 如何取消.net后台线程的执行
- 【WeakReference】WeakReference(弱引用)让GC需要
- 【字符文本】asp.net 数据绑定 使用eval 时候报
- 【Repeater控件】.NET实现Repeater控件+AspNetPag
- 【客户端】获取客户端IP地址c#/vb.net各自实现代
- 【asp】asp.net上传execl文件后 在页面上加载显示
- 【Excel】页面导出为Excel的时间格式的问题-时间
- 【ref】asp.net(c#)ref out params的区别-out-pa
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
