类定义的内联函数分为以下3种:
1. 隐式内联
类里面定义的函数隐式内联,有利于类内部实现细节的隐藏。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class Person { public: Person(const string &name) { Name = name; } void printName() { cout << Name << endl; } private: string Name; };
|
2. 在类里面显示声明,在类外面定义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Person { public: Person(const string &name) { Name = name; } inline void printName(); private: string Name; }; void Person::printName() { cout << Name << endl; }
|
3. “追加”内联
表示在类里面没有显式声明,在类外显示定义了内联。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Person { public: Person(const string &name) { Name = name; } void printName(); private: string Name; }; inline void Person::printName() { cout << Name << endl; }
|
4. 常见的成员函数不是内联函数
定义不在类里面,且声明和定义都没有inline
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Person { public: Person(const string &name) { Name = name; } void printName(); private: string Name; }; void Person::printName() { cout << Name << endl; }
|
注:内联函数仅仅是对编译器的内联建议,编译器是否觉得采取你的建议取决于函数是否符合内联的有利条件。如何函数体非常大,那么编译器将忽略函数的内联声明,而将内联函数作为普通函数处理。
参考文献
C++类里面的哪些成员函数是内联函数?
C++内联函数
相关文献
C语言宏定义、宏函数、内置宏与常用宏