内联函数

内联函数适用于函数较为短小的情况。

内联函数存在的意义是:提高程序运行效率。

内联函数的缺点:如果一个内联函数太长且频繁调用,会导致生成的可执行程序较大。

静态链接库会被嵌入到生成的可执行程序中,如果很多程序都依赖同一个静态链接库,那么应该把这个静态链接库做成动态链接库。这样就能够减少程序所占内存。

静态链接库比动态链接库效率更高,且不存在依赖问题。如果动态链接库有不同的版本,那么必须为动态链接库引入版本管理才能让两个程序正常运行。

实际上,现代编译器已经自作主张地在时间和空间之间找到了平衡:即便你声明了一个内联函数,这个函数不一定真的会发生内联操作;即便一个函数没有声明为内联函数,这个函数也有可能变成内联。一个函数是否内联,是由编译器决定的。

对于类,如果把函数实现写在类的内部,那么这个函数默认会被加上一个inline,但是实际上它不一定会发生内联。

C++最佳实践

把C++当做Java来写,所有的文件都是.hpp文件。每个hpp文件中包含多个类定义,把类的函数声明跟函数实现放在一起。

不要使用静态函数和静态成员变量,而应该使用单例。

函数默认参数

Python达到了灵活性的极致,Python的默认参数是无序的,C++的默认参数是有序的。
Java完全放弃了函数默认参数,真正做到了一个函数只做一件事。但是Java中包含大量的函数重载,通常会提供一个大而全的函数,然后重载一堆函数去调用这个大而全的函数。
C++中的函数默认参数跟Python相比略微单薄,但是一定程度上能够减少函数重载的个数。
在设计C++时,需要权衡函数参数的优先级,合理对函数参数进行排序。

函数重载

C语言不支持函数重载,C++支持函数重载。
C++函数重载的原理是把函数的名字用它的参数类型进行命名,例如int f(int,int)会变成f_int_int。
函数重载只跟入参有关,跟返回值无关。
C++的函数和C语言的函数编译之后的名字是不一样的,这是二者的唯一区别。
extern “C”这种写法就是为C++函数重载而生的。

C++本身就是一个复杂的程序

如果把编程语言比作人,C++是一个英雄。它尝试了很多别人不敢尝试的东西,在艰难的假设之中砥砺前行、永不言弃。
C++勇敢面对各种假设:必须有运算符重载,必须有多继承等。
C++本身就是一个应用程序。

最新文章

  1. 五.Jenkins安装plugin
  2. php 经典的算法题你懂的
  3. 程序设计入门——C语言 第4周编程练习 1 素数和(5分)
  4. MVC bundle(包扎)CSS或是JS文件
  5. undefined与null的区别
  6. 多重比对multiple alignment
  7. 利用crontab自动更新SVN代码
  8. win10 IIS10 HTTP 错误 404.2 - Not Found
  9. Hoax or what
  10. 关于前台主键输入错误对后台hibernate方法的影响
  11. hive:框架理解
  12. AXI4 STREAM DATA FIFO
  13. kali ssh远程连接过程
  14. 聊聊Google DSM产品的发布
  15. [转]Spring通过@Value注解注入属性的几种方式
  16. python接口自动化测试二十八:连接SQL sever操作
  17. CSS------如何让大小不一样的div顶部对齐
  18. C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账
  19. win10 uwp 让焦点在点击在页面空白处时回到textbox中
  20. 【linux】ls常用参数

热门文章

  1. unittest,requests,assertEqual实战演练
  2. Html学习之三(列表)
  3. appium Ui自动化调起应用点击
  4. zz自动驾驶复杂环境下高精度定位技术
  5. MySQL学习笔记2——DML
  6. sqlserver deadlock
  7. sessionStorage 、localStorage 、 cookie 和session之间的区别
  8. 数据仓库006 - MySQL 5.6.x - Linux最佳生产环境离线部署
  9. 面试被问怎么排查平时遇到的系统CPU飙高和频繁GC,该怎么回答?
  10. 在 React 组件中监听 android 手机物理返回/回退/back键事件