Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有无';这';在POO属性类中_C++_Class_This - Fatal编程技术网

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,方法返回int
m_foo
是一个
int
但该方法返回一个
foo
@LuiggiMendoza是的,问题很奇怪。我同意,这个方法返回一个int!很抱歉