2 c++
考虑一个C类中两个类似C++成员函数的示例:
void C::function(Foo new_f) {
f = new_f;
}
Run Code Online (Sandbox Code Playgroud)
和
void C::function(Foo new_f) {
this->f = new_f;
}
Run Code Online (Sandbox Code Playgroud)
这些函数是否以相同的方式编译?使用this->(更多内存访问或其他)是否有任何性能损失?
是的,它完全相同,你将获得相同的性能.
您真正必须使用this->语法的唯一时间是您具有与要访问的实例变量同名的函数的参数.使用变量名称本身将引用参数,因此您需要this->.当然,您也可以重命名参数.而且,正如ildjarn在评论中指出的那样,你需要this在某些情况下使用它来调用依赖的函数,因为它this是隐式依赖的(你可以阅读更多关于它的内容).