天天看点

问题四:C++中inline是干嘛用的

iInline:若一个函数被指定为inline函数,则它将在程序中每个调用点上被内联地展开。一般来说,内联函数不会引入任何函数调用。所以可以提高执行效率。

注意,函数home() 、get() 、height()和width()的定义是在类体内提供的。这些函数被称为“在类定义中定义的内联(inline)函数”。这些函数被自动作为inline函数处理。

我们也可以通过在成员函数的返回类型前显式地指定关键字inline,在类体内将这些成

员函数声明为inline的。如上代码中:

inline float x() const { return e[0];}

 inline const vec3& operator+()const { return *this; }

一两行以上的成员函数最好被定义在类体之外。通常,在类体外定义的成员函数不是inline的。但是这样的函数也可以被声明为inline函数,可以通过显式地在类体中出现的函数声明上使用关键字inline,或者通过在类体外出现的函数定义上显式使用关键字inline,或者两者都用。如上代码中:

  inline vec3& operator+=(const vec3&v2);

 inline vec3& vec3::operator+=(constvec3 &v)

{

    e[0] += v.e[0];

    e[1] += v.e[1];

    e[2] += v.e[2];

    return *this;

}

继续阅读