C++ inline 有什么用？？
C++ 中有一个qualifier inline，这个东西有什么用啊？？自己尝试了下如果去掉的话好像也可以的样子。  
ps，另外一个小问题。java中所有的method都必须在class内让后通过new object
调用，但是C++可以把function直接定义在外面，那么将function写在class内和定义在外面的优劣是什么呢？？是根据需求么？？还是有什么行内protocol？？
C++ 标准中 inline 的作用是使得一个拥有外部链接的函数能由多个翻译单元同时提供定义（C++17 起也可以用于变量）。

实践上来说，它使得头文件中可以写函数（或变量）的定义，而多个源文件包含该头文件时用到的都是相同的函数（或变量）。这种情况下不会有链接错误。

如果没有什么考古需要的话，请记住 C++ “标准语（Standardese）”的 inline 和英语的 inline具有完全不同的含义，不要将它们混为一谈。

（另外 C 的 inline 与 C++ 的不一样，但也和英语的 inline 含义完全不同。）

至于有人说的“代替宏展开”这种目的，实际普通的 inline 函数是远不能达成的——只加上 inline 尚不能允许在常量表达式中执行函数。后来的constexpr 函数经过多年演进才勉强接近达成了该目的。（注意用于函数时 constexpr 蕴含 inline 。）