Getter/Setter 同名

Getter/Setter with same name

我有一个 API 我需要在扩展它时松散地模拟(所以没有改变约定),我必须做的一件事就是提供 setter/getter 之类的使用单名方法访问一些私有成员,一次用于设置,一次用于通过签名更改。

看起来像这样

class MyClass{
    float m_t1;
    float m_t2;

public:
    const float t1();
    const float t2();

    void t1(float);
    void t2(float);
};


MyClass::MyClass(){
    m_t1 = 0.0;
    m_t2 = 0.0;
}


const float MyClass::t1(){
    return m_t1;
}

const float MyClass::t2(){
    return m_t2;
}

void MyClass::t1(float t_val){
    m_t1 = t_val;
}

void MyClass::t2(float t_val){
    m_t2 = t_val;
}

我的问题是,这个有名字吗?也许作为一种模式或其他东西。

虽然如果我是从头开始做事,这不是我的第一选择,但我不一定介意,但是任何让我能够阅读它的指示(注意事项、建议、做和不做,以防它实际上是一个thing) 将不胜感激,以防万一它是一个在某个地方出现令人讨厌的惊喜的模式(在这种情况下比仅仅扔两个浮点数更复杂)。

如果有人想分享他们对它的看法,那当然是一种奖励,但我很乐意提供进一步阅读的链接。

我认为是Objective-Csetter/getter风格。例如,参见 this and this

只要您熟悉 C++ 重载,重载方法就不足为奇了。如果没有,那么我建议阅读更多关于重载的内容。

就个人而言,因为我来自 Java 背景,所以我喜欢使用 setVariable 和 getVariable 名称。但同样,这完全是个人的。