1、inline函数出现的原因
取代函数表达式形式的宏定义,消除了宏定义的安全隐患和局限性。安全隐患是指仅仅只是做预处理器符号表中的简单替换,因此它不能进行参数有效性的检测,也就不能享受C++编译器严格类型检查的好处,另外它的返回值也不能被强制转换为可转换的合适的类型;局限性是指C++中引入了类及类的访问控制,这样,如果一个操作或者说一个表达式涉及到类的保护成员或私有成员,你就不可能使用这种宏定义来实现(因为无法将this指针放在合适的位置)。
2、inline函数的使用
inline一般在要被多次调用,为了避免重复定义,一般在头文件中定义,这与一般函数有所不同。一般只将简洁短小的函数定义为inline函数,超过1200行的函数不建议定义为inline函数。
详细解析可参考http://baike.baidu.com/view/1365655.htm