C++版本的java这个.在课堂上

C++ version of java this. in classes

本文关键字:课堂 这个 java 版本 C++      更新时间:2023-10-16

可能重复:
C++相当于Java这个

java的this的c++版本是什么?:

class javaObj{
private String name;
public void setName(String name)
{
    this.name = name;
}
}

我发现在c++中唯一有效的是:

class cppObj
{
private:
    string name;
public:
    void setName(string name);
};
void cppObj::setName(string name)
{
    cppObj::name = name;
}

我必须使用cppObj::吗。等价于c++?

Java的C++等价物如下:

this->name = name;

这篇文章提出了另一种语法:

(*this).name = name;

C++等价物是this指针。

this->name = name;

这种操作更常见的是执行以下操作:

void cppObj::setName(const string& name)
{
    name_ = name;
}

其中,成员变量以下划线作为后缀,参数由const引用传入(不复制string的值(。这里没有歧义,并且不需要this指针。

是的,C++有等价的this指针。等效代码为:
void cppObj::setName(string name)
{
    this->name = name;
}

然而,你可以增强你的代码:

class cppObj
{
private:
    std::string name_;   // better naming style to distinguish class member with other variables
public:
    void setName(const std::string& name);  // pass by reference to elide the unnecessary copy
};
void cppObj::setName(const std::string& name)
{
    name_ = name;  // not necessary to have to use `this->` pointer syntax
}

像java,this,但是"->"而不是".";

  • IBM C++for AIX:this指针(仅限C++(
  • 教程网站:C++this指针