在 C++ 中的类的成员函数中,如果我使用 this->dataMember
或仅使用 dataMember
会有所不同吗?什么被认为是更好的风格?有什么性能差异吗?
(我不是在谈论局部变量与数据成员同名的情况,在这种情况下,据我所知,您必须使用 this->
来区分它们。 )
最佳答案
作为一般规则,这是本地惯例的问题。大部分的
我见过的地方不使用 this->
除非有必要,那就是
我也喜欢这个约定,但我听说有人喜欢
系统地使用它。
有两种情况是必要的。第一个是如果你隐藏了
本地范围内同名的名称;如果例如你有成员(member)
命名为 toto
,并且您还将函数参数命名为 toto
。许多
编码约定标记成员或参数以避免这种情况
案例,例如所有成员名称都以 my
或 m_
或参数名称开头
将以 the
开头。
另一种情况是 this->
可以在模板中使用来命名
依赖。如果模板类继承自
依赖类型,并且您想访问基类的成员,例如:
template <typename T>
class Toto : public T
{
public:
int f()
{
return this->g();
}
};
如果这里没有 this->
,g()
将是一个非依赖名称,而
编译器会在模板定义的上下文中查找它,
不考虑基类。
关于c++ - 我应该在类里面使用 `this` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590820/