内联函数适用于函数较为短小的状况。编程
内联函数存在的意义是:提升程序运行效率。编程语言
内联函数的缺点:若是一个内联函数太长且频繁调用,会致使生成的可执行程序较大。函数
静态连接库会被嵌入到生成的可执行程序中,若是不少程序都依赖同一个静态连接库,那么应该把这个静态连接库作成动态连接库。这样就可以减小程序所占内存。设计
静态连接库比动态连接库效率更高,且不存在依赖问题。若是动态连接库有不一样的版本,那么必须为动态连接库引入版本管理才能让两个程序正常运行。排序
实际上,现代编译器已经自做主张地在时间和空间之间找到了平衡:即使你声明了一个内联函数,这个函数不必定真的会发生内联操做;即使一个函数没有声明为内联函数,这个函数也有可能变成内联。一个函数是否内联,是由编译器决定的。继承
对于类,若是把函数实现写在类的内部,那么这个函数默认会被加上一个inline,可是实际上它不必定会发生内联。内存
把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++自己就是一个应用程序。