Inline 的四种写法:
//Case 1: 在函数体内实现其定义,虽然没有显示的声明inline关键字,但是这些函数被自动作为inline函数处理,
//被成为"在类定义中定义的内联(inline)函数".
class List
{
public:
void PrintMe()
{
cout << "List";
}
};
//Case 2: 在函数体内实现其定义,并显示的声明inline关键字,当然,这个inline关键字完全是冗余的。
//被成为"在类定义中定义的内联(inline)函数".
class List
{
public:
inline void PrintMe()
{
cout << "List";
}
};
//Case 3: 在类体外定义的成员函数不是inline的,
//但是如果显示的在类体内中的声明上加上inline关键字,则其也成为inline函数。
class List
{
public:
void PrintMe();
};
//必须在List.h中
inline void List::PrintMe()
{
cout << "List";
}
//List.h
//Case 4: 在类体外定义的成员函数不是inline的,
//但是如果在类体外出现的函数定义上显示的使用inline关键字,则其也成为inline函数。
class List
{
public:
inline void PrintMe();
};
//必须在List.h中,并且这里函数前可加inline,也可不加。
void List::PrintMe()
{
cout << "List";
}
//Notice:由于inline函数必须在调用它的每个文本文件中被定义,
//所以没有在类体中定义的inline成员函数必须被放在类定义出现的.h文件中,并且在类定义之后。
//否则compilor会报错!
No comments:
Post a Comment