c++中如何定义内联成员函数_c++内联成员函数定义方法

31次阅读

类内定义的成员函数默认为内联函数,编译器将其展开以减少调用开销,适用于短小频繁调用的函数。

c++中如何定义内联成员函数_c++内联成员函数定义方法

在C++中,内联成员函数(inline member function)用于减少函数调用开销,特别适合短小频繁调用的函数。编译器会尝试将函数体直接插入调用处,而不是进行常规的函数调用。

类内定义自动内联

在类内部直接定义的成员函数,默认被视为内联函数,无需显式使用inline关键字。

class MyClass { public:     void show() {         std::cout << "Hello!" << std::endl;     } };

上面的show()函数虽然没有写inline,但因为定义在类内部,编译器会自动尝试将其作为内联处理。

类外定义需显式声明内联

如果成员函数在类外定义,想要成为内联函数,必须在类内声明或类外定义时使用inline关键字。

立即学习C++免费学习笔记(深入)”;

class MyClass { public:     void display();  // 声明 };  inline void MyClass::display() {     std::cout << "Display called." << std::endl; }

也可以在类中声明时加上inline

c++中如何定义内联成员函数_c++内联成员函数定义方法

通义视频

通义万相ai视频生成工具

c++中如何定义内联成员函数_c++内联成员函数定义方法70

查看详情 c++中如何定义内联成员函数_c++内联成员函数定义方法

class MyClass { public:     inline void display();  // 显式声明为inline };  void MyClass::display() {     std::cout << "Display called." << std::endl; }

两种方式都可实现内联,关键是确保inline出现在函数定义的同一翻译单元中。

头文件中定义内联函数

由于内联函数在编译时需要被展开,其定义必须在每个调用它的源文件中可见。因此,类外定义的内联函数通常放在头文件(.h 或 .hpp)中,避免链接错误。

例如,在MyClass.h中完整定义:

// MyClass.h class MyClass { public:     void func();  // 声明 };  inline void MyClass::func() {     // 实现 }

这样所有包含该头文件的源文件都能看到函数体,满足内联要求。

基本上就这些。内联是一种优化建议,最终是否内联由编译器决定。合理使用可提升性能,但过度使用可能导致代码膨胀。不复杂但容易忽略的是:类外定义一定要记得加inline并放在头文件中。

相关标签:

c++ 成员函数 function

text=ZqhQzanResources