c++ - C++中如何用getter方法实现封装

标签 c++ oop

在下面的代码中,我将值分配给另一个类函数中的 url。 我收到了代码审查评论“将 url 设为私有(private)并且 实现应该返回 std::string 的 getter 函数 通过引用传递的输出参数的值'

class http_client
{
    public:
        std::string url;
};

我对上面的评论感到困惑,因为我使用 url 只是为了在 http_client 类之外设置一个值。最初,我以为我必须 一种公共(public) setter 方法,它将值设置为 url,如下所示。

class http_client
{
    private:
        std::string url;
    public:
        void set_url(const std::string& url)
        {
            this->url = url;
        }
};

任何人都可以建议我在上面的代码审查评论中缺少什么吗?

最佳答案

getter 函数是 setter 的对应物。使用 setter,客户端代码能够设置值。使用 getter,客户端代码需要能够获取值。

我可以想到几种方法。

std::string const& get_url() const
{
   return this->url;
}

void get_url(std::string& url) const
{
    url = this->url;
}

要求您使用第二种方法实现它。

关于c++ - C++中如何用getter方法实现封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52178085/

相关文章:

C++:继承、赋值

Matlab复制构造函数

c# - "new"关键字(用于方法)和 OOP

java - 从现有子集创建子集的有效方法?

java - 有没有办法在类之间使用方法?

c++ - 预期的无限递归,不返回函数

c++ - LeetCode 15:使用 HashMap 的3Sum

c++ - Libxml++ : Returning Line/Column number upon validity errors

c++ - 更智能的排列循环

oop - 如何在 UML 类图中显示封装?