比如
class CTest
{
public:
void A();
}
void CTest::A(){...}与class CTest
{
public:
void A(){...}
}是不是前者内联函数?
向Java的类都是后者的,
不知VC里面一般情况下用哪个比较好?
谢谢

解决方案 »

  1.   

    看C++ Primer, 另外书上说内联,也不要轻信。
    在我看来,区别不大。
      

  2.   

    后面一种写法就是默认为具“inline”性质的第一种写法。
      

  3.   


    至少VC不会真的帮你内联的,而且内联本事的说道也很多的,哪那么容易就被inline了
      

  4.   

    inline 和非 inline 的区别就好像 宏 与 函数的区别凡是 inline 的函数在编译时将直接用{}内的代码插入到指定处,而不是函数调用而函数调用则会先保存寄存器环境,即PUSH操作,调用结束则 POP,恢复寄存器环境所以inline的使用能加快运行速度,但同时也会增加程序代码长度,应该合理利用代码直接写在类声明中的函数正如楼上所言属于一种也可以在 cpp 文件中 函数名前 添加 _inline 标记
      

  5.   


    内联只适合函数体内代码简单的函数使用,不能包含复杂的结构控制语句(while switch),内联函数本身不能是直接递归函数。另,类方法直接写在原型里是内联;写在原型外,但原型里的声明处有inline修饰的也是内联。