1.为什么使用内联函数及其原理
作用:消除函数调用开销,用于优化规模小、流程直接、频繁调用的函数。
理解:将内联函数在其调用点“内联的”展开。
注意:内联函数只是向编译器发出一个请求,编译器在进行编译时是可以忽略这个请求的
//定义内联函数
inline const string& shorterString(const string &s1, const string &s2)
{
return s1.size() <= s2.size() ? s1 : s2;
}
//使用内联函数
cout << shorterString(s1, s2) << endl;
//上一句的等效表达
//cout << (s1.size() < s2.size() ? s1 : s2) << endl;
2.类中如何使用内联函数
分为显示定义和隐式定义两种,对于显示定义,也可以在类内声明之后定义时声明为
class Screen {
public:
char get() const { return contents[cursor]; } //隐式内联
inline char get(pos ht, pos wd) const; // 显式内联
Screen &move(pos r, pos c); //在其后声明为内联
};
inline Screen &Screen::move(pos r, pos c)
{
return *this; // return this object as an lvalue
}