使用inline内联函数整合C++类的声明和定义到一个头文件

在使用C++做项目时,要用到多个类。按照头文件和源码文件分开创建的形式,文件很多,而且在头文件和源码文件中跳来跳去很麻烦。另外,在引用头文件时,需要引用很多次,很繁琐。于是,参考一些大型库的做法,把源码整合到头文件中去。我使用的每个类体量都不是很大,于是决定采用这种方法,每个类只创建一个头文件,不要源码文件。

但是遇到一个问题,当把源码内容加入到头文件时,编译时总是出现重复定义问题。找了半天问题,终于通过inline 的形式,解决了问题。

在头文件中,用常规办法声明类的变量和方法。在类的外部,直接定义方法的源码内容。在每一个方法前面加上 inline 修饰字,使得编译器将函数的代码直接插入到调用该函数的地方,允许该函数在多个编译单元中重复存在,确保在多个源文件中都可以访问到该函数的定义。

我在qt中使用的一个类,示例如下

class Geometry : public QWidget
{
    Q_OBJECT

public:
     Geometry(QWidget *parent = 0);
    ~Geometry();

};


inline Geometry::Geometry(QWidget *parent) : QWidget(parent)
{

}

inline Geometry::~Geometry()
{

}

这样,我就把类的声明和定义整合到一个头文件中了。减少文件数量,提高编程效率。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值