gpt4 book ai didi

C++ getter/setter 范式

转载 作者:行者123 更新时间:2023-11-30 02:56:46 29 4
gpt4 key购买 nike

我最近遇到了这个类,并对 getters 和 setter 已实现。

我以前没有遇到过这种情况,欢迎提出第二点意见。

您认为这是一个好的范例吗?不好吗?是邪恶的吗?

标题:

    class Tool
{
public:
Tool();
virtual ~Tool();

bool setName(const std::string &name);
bool getName(std::string &name) const;

void clearName();

private:
std::string m_name;
bool m_nameSet;

};

cpp文件:

#include "Tool.h"

Tool::Tool()
: m_name("")
, m_nameSet(false)
{
}


Tool::~Tool()
{
}


bool Tool::setName(const std::string &name)
{
m_name = name;
m_nameSet = true;
return (m_nameSet);
}

bool Tool::getName(std::string &name) const
{
bool success = false;
if (m_nameSet)
{
name = m_name;
success = true;
}
return (success);
}

最佳答案

您选择的 getter 方式并不流行,程序员更喜欢从 getter 中返回数据

std::string getName() const;

为什么应该在 getter 上重新检查之前设置或具有初始数据的项目?如果要验证数据,请在 setter 上进行验证。

但是,如果您坚持返回一个值作为“之前设置的名称”,您可以通过 bool isNameSet() const;

编写第三种方法

关于C++ getter/setter 范式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15223504/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com