自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 如何在项目中使用开源库——从源码编译出动态库(以mosquitto为例)

将 mosquitto 的 include 文件夹中的四个文件,以及自己生成的 libmosquitto.so.1 加入自己的项目中。所以,在运行可执行文件前,需要在可执行文件的同级目录下新建 lib 文件夹,将动态库 libmosquitto.so.1 放进去。文档,发现编译步骤如下(本文所用环境为 linux 环境,所以只需要 make)。此时,可能会因为缺少某些东西,导致编译失败,按照提示进行安装即可。项目中想要使用某个开源库,需要先自行将其从源码编译出来。想在自己的项目中使用 mosquitto?

2024-03-07 12:03:55 753

原创 构造语义学——初始化列表

这表示,在 user code 前,编译器调用了 Member 类的默认构造函数初始化了成员类对象 _memObj,也用随机值初始化了 int 型变量 _num。显然,在构造函数中使用赋值语句再赋值,是一种浪费,浪费了初始化列表进行的初始化。所以,使用初始化列表进行初始化的效率,要高于在构造函数中使用赋值语句。实际上,构造函数体内的语句只能算是对成员变量进行赋值,初始化列表才是真的对成员变量进行初始化。tip: 初始化列表中的初始化顺序,仍按照类中的声明顺序,并不按照初始化列表中的顺序。

2024-03-05 20:26:58 299

原创 构造语义学——程序转化语义学

编译器会在拷贝构造函数中,用额外参数 _result 来替换有名字的返回变量(Named Return Value),本例中即为 temp。因此,这三种情况,会迫使编译器对用户代码进行部分转化,在适当的位置插入对拷贝构造函数的调用。显然,编译器也考虑到了这点。所以有时候,编译器会默默地自己进行 NRV 优化。拷贝构造函数,就是用一个已存在的对象去初始化另一个对象。那么,以下三种情况,显然需要用到拷贝构造函数。如果能去掉这些拷贝构造函数,那该有多好。

2024-03-05 19:47:37 530

原创 构造语义学——默认构造函数与拷贝构造函数

本文所用环境为: 64位机、g++编译器。

2024-03-04 20:54:23 1501

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除