小技巧:防跨文件或跨包类型重定义

本文介绍了在C++编程中如何使用预编译宏避免跨文件或跨包类型重定义的问题,以此降低代码耦合性和解决功能分类不清晰的挑战。通过示例展示了如何定义和使用预编译宏来定义和使用自定义类型,如enum,以提高代码的可维护性和复用性。
摘要由CSDN通过智能技术生成
C++编程中,用户经常会自定义类型,如enum、struct等。一般地,这些自定义类型都放在头文件中定义,以便传递给其他类使用(#include该头文件即可)。如果是功能相关的类,直接包含该头文件即可使用这个自定义类型,如果不是功能相关的类,仅仅为了使用该自定义类型而包含这个头文件,会增加代码(类)的耦合性。
如果不想增加代码的耦合性,又想跨功能模块使用某个自定义类型,一般的做法是,新建一个单独的头文件,将自定义类型放在其中,然后其他类包含这个“自定义类型”公共头文件。但这样做也有缺点:一是如果把所有“自定义类型”全放在这个头文件中,会显得功能分类不清晰;二是如果按功能划分多个“自定义类型”公共头文件,会增加很多头文件,导致代码臃肿,特别某些功能仅有一个自定义类型时,单独新建一个头文件,显得突兀;三是如果某个类是一个功能比较独立的类,且需要跨不同工程进行复用(SVN映射的形式),为了保证它的独立性,应尽量少包含自定义头文件;四是跨编译包使用某个自定义类型,包含“自定义类型”公共头文件的做法会更麻烦。
有没有好一点的办法?近日,我遇到了这么一个问题,并想到了一个解决办法——预编译宏,貌似很多开发框架中也应用了这个技术,如MFC。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值