簡體   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