C++ 中虚函数与内联函数的差异
虚函数:
虚函数是在基类中声明的成员函数,在派生类中被重新定义的函数。
内联函数:
内联函数是用关键字 inline 定义的常规函数,它是一个短小的函数,由编译器展开,它的参数只被评估一次。
在C++中定义内联函数的语法是:
inline 返回类型 函数名称(参数)
{
// 函数代码
}
虚函数与内联函数的差异如下:
虚函数 | 内联函数 |
---|---|
1.虚函数必须在类的公共部分声明。 | 1.内联函数是使用关键字 inline 定义的常规函数。 |
2.虚函数不能是静态的。 | 2.内联函数也可以是非静态的。 |
3.虚函数在基类中定义。 | 3.内联函数是自动成为内联函数而不需要在类中使用 inline 关键字定义的短函数。 |
4.虚函数用于降低代码效率。 | 4.内联函数用于提高代码效率。 |
5.虚函数是运行时多态性。 | 5.内联函数是编译时多态性。 |
6.虚函数可能包含虚析构函数,但不能有虚构造函数。 | 6.内联函数也可以包含内联构造函数。 |
7.虚则用于动态链接。 | 7.内联函数用于减少函数调用开销。 |