在C++类中,静态函数与成员函数相比是否存在额外开销。
class CExample
{
public:
int foo( int a, int b) {
return a + b ;
}
static int bar( int a, int b) {
return a + b ;
}
};
我的问题是:
- 在这个例子中,foo()或bar()哪个更有效率?
- 为什么我不想把foo()变成静态函数,因为它没有改变任何成员变量?
this
),而另一个则没有[整个论点是假设编译器没有将该函数内联]。 - David Rodríguez - dribeasthiscall
(即在从未使用的this
指针上浪费寄存器)的编译器。有比声称没有区别更好的方法来证明差异永远不重要,当它快速时就会有一个。 - user395760