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

在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:
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++++中如何定义内联成员函数_c++内联成员函数定义方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号