访问参数隐藏的数据成员

发布于 2024-08-21 00:43:26 字数 213 浏览 8 评论 0原文

在 Java 中,您可以使用关键字 this 访问类中的变量,因此您不必为函数中的参数找出新名称。

Java 片段:

private int x;

public int setX(int x) {
  this.x = x;
}

C++ 中有类似的东西吗?如果不是,命名函数参数的最佳实践是什么?

In Java you can access variables in a class by using the keyword this, so you don't have to figure out a new name for the parameters in a function.

Java snippet:

private int x;

public int setX(int x) {
  this.x = x;
}

Is there something similar in C++? If not, what the best practice is for naming function parameters?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

拔了角的鹿 2024-08-28 00:43:26

如果你想通过this访问成员,它是一个指针,所以使用this->x

If you want to access members via this, it's a pointer, so use this->x.

抚你发端 2024-08-28 00:43:26
class Example {
    int x;
    /* ... */
public:
    void setX(int x) {
        this->x = x;
    }
};

哦,在构造函数初始化列表中,您不需要 this->

Example(int x) : x(x) { }

不过,我认为这种边界线风格很糟糕。

class Example {
    int x;
    /* ... */
public:
    void setX(int x) {
        this->x = x;
    }
};

Oh, and in the constructor initialization list, you don't need this->:

Example(int x) : x(x) { }

I'd consider that borderline bad style, though.

山田美奈子 2024-08-28 00:43:26
private int x;

public int setX(int newX) {
  x = newX;
  return x;  //is this what you're trying to return?  
}

在大多数情况下,我会创建一个像这样的“set”函数 void IE

public:
void setX(int newX) {
  x = newX;
}
private int x;

public int setX(int newX) {
  x = newX;
  return x;  //is this what you're trying to return?  
}

In most cases, I will make a 'set' function like this void IE

public:
void setX(int newX) {
  x = newX;
}
眼中杀气 2024-08-28 00:43:26

取决于编码约定。

来自 Google 的 C++ 样式指南

void set_some_var(int var) { some_var_ = var; }
int some_other_var_;

Depends on coding conventions.

From Google's C++ style guide:

void set_some_var(int var) { some_var_ = var; }
int some_other_var_;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文