C++
秋名山小法师
这个作者很懒,什么都没留下…
展开
-
【C++】前置声明的使用
先说结论:尽可能避免前置声明,使用#include包含对应的头文件。定义前置声明是类、函数和模板的纯粹声明,不包含其定义。前置声明是为了降低复杂的依赖关系,防止一个头文件修改引起重新编译时的多米诺效应。优点使用前置声明的优点其实就是使用#include的缺点在编译时,更多的#include会展开更多的头文件,处理更多的输入,加长编译时间。在重新编译时,#include会将头文件...原创 2020-03-04 00:53:25 · 397 阅读 · 0 评论 -
【C++】命名空间namespace
最近在工作中遇到一个bug,找问题找了很久,最终发现是函数命名冲突的原因。具体地说就是上层在调用接口的时候使用的是我的头文件,但是实际调用到的实现来自其他静态库中的同样没有命名空间的同名函数。在工程联调的时候当断点打在该函数时无法跳转进我的函数实现,而是直接跳转到汇编语言,证明是链接到了已经编译好的其他静态库中。在这种情况下将自己的函数定义或类定义全部放在一个自己定义的namespace中,便可以...原创 2019-10-28 11:04:11 · 409 阅读 · 0 评论 -
【C++】多态
多态是C++特性之一,多态性就是使用相同的接口实现不同的方法。多态性分为静态多态性和动态多态性。在C++中,多态性的实现和联编(或称绑定)这一概念有关。一个源程序经过编译、链接,成为可执行文件的过程是把可执行代码联编在一起的过程。其中在编译时完成的联编称为静态联编(前期联编);而在运行时完成的联编称为动态联编(后期联编)。静态多态性静态多态性又可以称为编译时多态性,在C++中,静态多态性是通...原创 2019-10-28 10:21:53 · 116 阅读 · 0 评论