![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 88
小果曼
圆脸小学习将
展开
-
Windows/Linux下的动态库制作与使用
Windows/Linux下的静态库制作与使用静态库,容易使用和理解,也达到了代码复用的目的,那为什么还需要动态库呢?动态库:在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入。不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例,规避了空间浪费问题。动态库在程序运行时才被载入,也解决了静态库对程序的更新、部署和发布页会带来麻烦。用户只需要更新动态库即可,增量更新。Window与Linux执行文件格式不同,在创建动态库的时候有一些差异。在Windows系统下的执行文件格原创 2022-07-05 23:19:26 · 1629 阅读 · 0 评论 -
Windows/Linux下的静态库制作与使用
库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(、)和动态库(、)。所谓静态、动态是指链接。将一个程序编译成可执行程序的步骤:test.hmain.cpp1 静态库1.1静态库是什么之所以称为“静态库”,是因为在链接阶段,会将汇编生成的目标文件与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静原创 2022-07-05 22:13:52 · 621 阅读 · 0 评论 -
谈谈异常处理
异常提供一个错误专用通道。优点:异常分为两个部分:捕获并处理异常特点复杂一点地写法注意指定函数可以抛出何种异常,如果没有默认可以抛出所有异常。指定函数不抛出函数,异常列表为空。当异常抛出后新对象如何释放?异常处理机制保证:举例异常与局部对象析构5. 标准异常类6. 构造函数、析构函数的异常处理构造函数可以抛出异常,此时不会调用析构函数,所以如果抛出异常前,申请了资源,需要自己释放。C++标准指明析构函数不能、也不应该抛出异常。C++标准规定,构造函数失败,析构原创 2022-07-04 17:40:36 · 594 阅读 · 0 评论 -
重载原理及Linux查看符号表
函数重载:在相同作用域中的多个函数,具有相同的名字而形参表不同。C++函数重载底层实现原理是C++利用name mangling(倾轧)技术,来改名函数名,区分参数不同的同名函数。编译器通过函数名和其参数类型 识别重载函数。为了保证类型安全的连接(type-safe linkage),编译器用参数个数和参数类型对每一个函数标识符进行专门编码,这个过程有时称为“名字改编”(name mangling)或“名字修饰”(name decoration)。类型安全的连接使得程序能够调用合适的重载函数并保证了参数传递原创 2022-07-04 12:12:05 · 1082 阅读 · 0 评论 -
C++类型转换
类型转换的使用原创 2022-07-01 17:58:01 · 1471 阅读 · 0 评论 -
写时拷贝/写时复制技术
深拷贝与浅拷贝,计数,写时拷贝原创 2022-07-01 16:01:41 · 800 阅读 · 0 评论 -
智能指针详解
智能指针的使用与实现原创 2022-07-01 15:31:12 · 1099 阅读 · 0 评论