没有自己的get方法有一个set方法是不好的做法吗?

joh*_*ith 2 c++ class accessor

假设我有一个类(名称圈是随机的,没有意义):

Class circle{
    double colorFrequency_;
public:
    void setColor(double colorFrequency){ colorFrequency_=colorFrequency; }
    void setColor(string colorName){ colorFrequency_=colorNameToFrequency(string colorName); } 
    double getColorFrequency()
    string getColorName(){ /* converts color frequency into a string containing the name of a color it's close to, like "red" */ }

}
Run Code Online (Sandbox Code Playgroud)

一方面,有一个名为setColor的方法似乎不一致,但不是一个名为getColor的方法,但另一方面,如果我要使用名为setColorFrequency和setColorName的函数,那么这些名称将不是完全描述性的,因为setColorName不仅影响getColorName的输出,也影响setColorFrequency的输出.

有一个名为setColor的函数,但没有一个名为getColor的函数,这太奇怪了吗?

Alo*_*ave 7

这取决于您是否希望您的类的用户获取成员值.

不寻常与否,你应该坚持你的设计要求.

  • @JürgenStrobelsetColorFrequency和setColorName声音就像他们会更新两个*不同的*东西 - 而他们没有.如果要避免重载,可能是setColorFromName或setColorFromFrequency ... (3认同)