C++重定义解决方法总结
来源:互联网 发布:现代软件学院 编辑:程序博客网 时间:2024/06/16 00:14
C++由于头文件重复包含了所定义的变量或者常量,编译器就会报重复定义的错误。如果你碰见这样的问题可以考虑重下面几个方面去解决: 1、在出现重定义错误的头文件加上: #ifndef FileName_H_ #define FileName_H_ ....(头文件内容) #endif 注意如果FileName_H_这个名字已经被使用,将会出现未定义问题(这里不讨论),这是你保证FileName_H_唯一就可以。 2、在出现重定义错误的头文件加上这一句:#pragma once 就可以解决(VS建立的类都会默认添加这一行),方式2与1其实是一样的,二选一即可(个人推荐使用方式1)
采用方式1或方式2基本上可以解决95%以上的重复定义的问题。在开发过程中,经常会使用第三方的API,单独使用某一个API都正常,但是同时使用多个API的时候就会出现某些结构体重复定义的问题,此时可以按照下面几种方式处理:
3、将重复定义的struct、变量名、常量,提出到一个公共的.h文件中,然后将原文件中公共部分的struct、变量名、常量屏蔽或删除,同时在头文件中包含公共的.h文件。
4、如果三防库中,出现C风格、C++风格两种不同的struct定义方式,就不能按照3的方式解决了(方式3解决后编译正常,但是会出现链接问题,分析 lib中的导出函数中参数与C风格参数差异)。此时只需要将C风格方式的struct修改为C++风格的struct,同时更新API头文件中对应使用C风格struct位置。
0 0
- C++重定义解决方法总结
- error LNK2005重定义解决方法
- 重定义对象简易总结
- winsock2.h中重定义错误解决方法
- winsock2.h中重定义错误解决方法
- 类型重定义冲突的解决方法
- 类型重定义的一个解决方法
- C++类型重定义错误的解决方法
- “AF_IPX”: 宏重定义的解决方法
- C语言中重定义 错误
- C潜规则篇之防止重定义
- C潜规则篇之防止重定义
- C里的重定义问题
- c语言中全局变量重定义
- C #define 行为未知的重定义
- winsock.h ws2def.h 宏重定义 解决方法
- C++ 解析什么叫“class”类型重定义还有解决方法
- C++出现error:重定义默认参-解决方法
- 常用网站(程序员必备)
- 微信JS之config:invalid url domain
- OK335xs2按键驱动程序
- js构建Map
- 如何解决秒杀的性能问题和超卖的讨论
- C++重定义解决方法总结
- ORCAD设计文件的库复制到自己库的方法
- ImageView的scaleType属性解析
- CF #312.div2 -Amr and Chemistry-暴力+位运算
- 1711.Number Sequence(KMP模板)
- 操作系统 linux 内核的三种进程调度方法
- Objective-C Associated Objects 的实现原理
- 向量几何在游戏编程中的使用
- ns3中loopback接口是在什么时候创建的?