1.直接在类中定义,不需要inline修饰,编译器直接将其转化为内联函数。这种函数叫做在类中定义的内联函数。
class A
{
//....
void do() {cout<<"hello world"<<endl;}
//...
} ;
与
class A
{
//....
inline void do() {cout<<"hello world"<<endl;}
//...
} ;
效果一样
2.不在类中定义,但定义与声明需在同一个文件中
class A
{
//...
void do();
//...
};
inline void do()
{
cout<<"hello world"<<endl;
}
3.inline并不能保证函数被实现为内联函数,这只是对编译器的一个建议,类似于关键字register 。例如函数代码过长,编译器将无视inline建议。
4.内联函数必须在使用前被定义,从文件上看,如果函数在定义之前被调用,那么该内联函数并没有被实现
void fun();
void do()
{
fun();
}
inline void()
{
cout<<"hello world"<<endl;
}