c++ - 具有相同名称的 Getter/Setter

标签 c++ getter-setter

我有一个 API,我需要在扩展它时松散地模拟它(因此没有改变约定),我必须做的一件事是提供 setter/getter,比如对一些私有(private)成员的访问名称方法实现一次用于设置,一次用于通过签名更改。

看起来像这样

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;
}

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

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

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

最佳答案

我认为这是 Objective-C setter/getter 风格。例如,参见 thisthis .

只要您熟悉 C++ 重载,就不会对重载方法感到惊讶。如果没有,那么我建议阅读更多关于重载的内容。

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

关于c++ - 具有相同名称的 Getter/Setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28469346/

相关文章:

c++ - 运行 .exe 并重定向标准输入和输出

c++ - 如何获得双倍的高分辨率时间戳?

swift - 为什么允许我使用继承所述协议(protocol)的结构设置协议(protocol)的只读属性?

c++ - 混合 getter/setter 和普通变量

Javascript setter 返回值而无需验证

c++ - C++ 游戏的动态数据处理

c++ - 指针和引用问题(链表)

C++ 使用 Windows 命名管道

javascript - 没有成员的 getter 和 setter

ruby-on-rails - ruby /rails : Understanding ruby getter-setter methods and instances