• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 解决C++中重定义的方法总结

解决C++中重定义的方法总结

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++闰年的计算方法,c++使用方法,c++排序方法,c++ 类方法,c++方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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位置。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在C++中反射调用.NET的方法(一)
  • 在C++中反射调用.NET的方法(二)
  • 在C++中反射调用.NET的方法(三)
  • C++实现顺序表的方法
  • C++实现合并排序的方法
  • C++判断矩形相交的方法
  • C++实现邮件群发的方法
  • C++去除输入行中空白的方法
  • C++处理键盘输入的方法
  • C++实现raw_input的方法

相关文章

  • 2022-04-30C语言fgetc和fputc函数用法详解(以字符形式读写文件)
  • 2017-05-28深入理解C++中的vector类的用法及特性
  • 2017-05-28浅谈C++对象组合
  • 2017-05-28C++中const的实现机制深入分析
  • 2022-04-30C语言数据类型转换(自动类型转换+强制类型转换)
  • 2017-05-28C中实现矩阵乘法的一种高效的方法
  • 2017-05-28c++实现逐行读取配置文件写入内存的示例
  • 2017-05-28C语言实现清空指定文件夹中所有文件的方法
  • 2017-05-28使用代码验证linux子进程与父进程的关系
  • 2017-05-28C++ CTreeview的checkbox使用方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++中指针的数据类型和运算相关知识小结
    • c语言B树深入理解
    • 随机加密程序的实现方法
    • C++中带空格字符串的输入问题解决
    • 浅析顺序结构存储的栈
    • C实现与 uint64_t 相同功能的类
    • C经典冒泡排序法实现代码
    • c语言生成随机uuid编码示例
    • C++输入输出操作符重载的深入分析
    • C和C++的内存操作小贴士(一):const char*的内存释放问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有