我在一个类中有一大批这样的函数,每个函数都返回一个整型值表示一个特定的含义,比如运行时间,温度等。而且这些函数内部都是仅仅返回一个值,就一行源代码。我想都改成inline提高速度,但是总有几个不行,编译无错误,Link时就说找不到了,真奇怪。我这些函数也不是虚函数,也不是静态的。

解决方案 »

  1.   

    上点代码,内联函数有写要求,好像一般不能使用for这些循环吧。
      

  2.   

    代码看我周末能不能拷贝出来。
    其实就是一个很普通的类,很普通的一个成员函数,例如
    int ClassA::GetSomeVar( void )
    {
    return m_nAge;
    }
      

  3.   

    如果在类声明体内部定义的则默认为内联,不需要加inline
    在类声明体内声明了函数,在类声明体外部实现函数,在函数体前要加上inline
      

  4.   

    //声明 
    class A
    {
        public:
        inline int GetSomeVar( void ) 
        { 
             return m_nAge; 
        } 
    };
    //然后实现
    int ClassA::GetSomeVar( void ) 

        return m_nAge; 
    } //就这样应该可以吧
      

  5.   


    在函数定义处,要加上inline,并且,就算加上了inline关键字,能不能成为内联函数,还是得看编译器,编译器还有一个调整地过程。
      

  6.   


    纯顶~如果写在cpp中,必须手工在调用的cpp文件中copy一遍。
    我前几天遇到同样的问题,看了下面的文章恍然大悟。
    http://blog.csdn.net/tonyxiaohome/archive/2009/05/16/4191800.aspx