繁体   English   中英

C ++中的setter和getter

[英]Setters and getters in C++

来自Java ,我习惯这样做:

void setColor(String color) {
    this.color = color;
}

但是,我最近切换到C++ ,我看到了很多这样的:

void setColor(string c) {
    color = c;
}

为什么不呢? 这不推荐?

void setColor(string color) {
    this->color = color;
}

这是完全相同的事情。 在Java中,如果您已将参数c命名为c而不是color ,则不会有任何阴影,您可以轻松编写

void setColor(String c) {
    color = c;
}

this用Java(或C ++为此事)只需要指定究竟哪些color你指的是:成员变量或局部变量。

没有必要使用this ,因为本地变量和成员变量之间没有冲突,也没有隐藏任何字段。 一般来说,你不希望这个冲突根本没有与构造函数参数相同的变量发生,也不希望发生局部变量(尽管很多书都教你这个)。 我发现这更平滑(即使你没有特定语言的背景,也更易读):

private String localColor;
void setColor(String color) {
localColor = color;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM