C++ 有无';这';在POO属性类中
我想知道是否有什么理由不在属性类中使用C++ 有无';这';在POO属性类中,c++,class,this,C++,Class,This,我想知道是否有什么理由不在属性类中使用this class Foo { private: int m_foo; public: int getIntance() { return this->m_foo; } } 除了它说这是当前类之外,还有其他原因吗?不,不要使用它。在这种特殊情况下,不需要它,这就减少了键入: int getIntance() { return m_foo; } 你写得越少越好。即使是读你的代码的人(他们也会少读)这
this
class Foo
{
private:
int m_foo;
public:
int getIntance() { return this->m_foo; }
}
除了它说这是当前类之外,还有其他原因吗?不,不要使用它。在这种特殊情况下,不需要它,这就减少了键入:
int getIntance() { return m_foo; }
你写得越少越好。即使是读你的代码的人(他们也会少读)
这也少了打字。在这种特殊情况下,这不是强制性的。除非您想将对象的当前实例传递给函数,否则没有理由使用这个
关键字
你可以简单地写:
int getIntance() { return m_foo; }
调用方法getInstance
返回int
,这很奇怪。这是非常罕见的…没有理由使用此
,除非,例如,您希望类外的某个对象指向您的实例(例如,您将实例-此
-添加到指针列表中)
在您的示例中,这个
是多余的,因为m\u foo
可以很容易地由return m\u foo返回代码>没有任何问题
但是,此
只能用于非静态成员函数,否则它将无法编译。我猜此
是隐式的!爪哇/C++?您标记了这两种语言。它与java标记有什么关系?您返回的是int,但返回的类型是Foo。这怎么可能?此外,对于这个问题,如果你留下这个,也没有任何区别。因为它是隐式的。Woops,方法返回intm_foo
是一个int
但该方法返回一个foo
@LuiggiMendoza是的,问题很奇怪。我同意,这个方法返回一个int!很抱歉