none
关于内联函数 RRS feed

  • 问题

  • 对于一个很短的程序,内联函数是不是意义不大? 它的作用是不是可以缩短时间节约时间和内存?
    #include<iostream>
    using namespace std;
    class point{
     public:
     point(int xx = 0, int yy = 0);      { X = xx ; Y = yy ; }
     point(point & p );
     int getx() {return X;}
     int gety() {return Y;}
     private:
     int X , Y;
    };

    point::point(int xx = 0, int yy = 0)
    {
      X = xx ; Y = yy ;
    }

    point::point(point & p)
    {
     X = p.X;
     Y = p.Y;
    }

    void fun1(point p)
    {
     cout<<p.getx()<<endl;
    }

    point fun2( )
    {
     point A(1,2);
     return A;
    }

    int main()
    {
     point A(4,5);
     point B(A);
     cout<<B.getx()<<endl;
     fun1(B);
     B = fun2();
     cout<< B.getx()<< endl;
    }



    上面这个函数中的下划线部分,内联函数和不用内联函数在外部定义,差别就不大了?

    2009年12月6日 2:33

答案

全部回复

  • 函数的实现在类里面和外面都是一样的.
    内联函数应该指的是在函数声明前加inline的函数
    比如 inline int XXX();这种函数在编译时和宏定义的效果类似,都是直接执行代码的而不使用call指令.


    0xBAADF00D
    2009年12月6日 15:42
    版主
  • 内联是用空间换时间的一种做法,占用内存但是效率高!

    • 已标记为答案 adam90 2009年12月7日 9:46
    2009年12月7日 0:41