在 POO 属性类中带或不带'this'

With or without 'this' in POO attribute class

本文关键字:属性 POO this      更新时间:2023-10-16

我想知道在属性类中使用this是否有原因?

class Foo
{
    private:
        int m_foo;
    public:
        int getIntance() { return this->m_foo; }
}

除了说这是目前的阶级之外,还有其他原因吗?

不,不要使用它。在这种特殊情况下,它是不需要的,这是较少键入:

int getIntance() { return m_foo; }

你写得越少越好。即使是阅读你代码的人(他们要读的代码会更少)

this的类型较少。在这种特殊情况下,它不是强制性的。没有理由使用this关键字,除非您想将对象的当前实例传递给函数。

你可以简单地写:

int getIntance() { return m_foo; } 

调用方法getInstance返回int是很奇怪的。这是非常罕见的。。。

没有理由使用this,除非,例如,您希望类外的东西指向您的实例(例如,您将实例this添加到指针列表中)。

在您的示例中,this是多余的,因为return m_foo;可以很容易地返回m_foo而没有任何问题。

但是,this只能在非静态成员函数中使用,否则将无法编译。