c++ - 我应该在类里面使用 `this` 吗?

标签 c++ class this

在 C++ 中的类的成员函数中,如果我使用 this->dataMember 或仅使用 dataMember 会有所不同吗?什么被认为是更好的风格?有什么性能差异吗?

(我不是在谈论局部变量与数据成员同名的情况,在这种情况下,据我所知,您必须使用 this-> 来区分它们。 )

最佳答案

作为一般规则,这是本地惯例的问题。大部分的 我见过的地方不使用 this-> 除非有必要,那就是 我也喜欢这个约定,但我听说有人喜欢 系统地使用它。

有两种情况是必要的。第一个是如果你隐藏了 本地范围内同名的名称;如果例如你有成员(member) 命名为 toto,并且您还将函数参数命名为 toto。许多 编码约定标记成员或参数以避免这种情况 案例,例如所有成员名称都以 mym_ 或参数名称开头 将以 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/

相关文章:

C++ 二叉树构建为什么这行不通?

python - shout-python 段错误我该如何解决这个问题?

c# - 构造函数的对象引用?

javascript - 'this' 和普通变量声明的区别

c++ - 将基本类型插入集合集合

c++ - 如何使用 WinCrypt 和 C++ 以 PEM 格式导入私钥?

java - 动态类加载时运行时注释扫描

c++ - 类构造函数和数组

javascript - 使用_this引用父类方法

javascript - JS函数中传入 "this"和 "event"