簡體   English   中英

如何使用getter方法在C ++中實現封裝

[英]How to achieve encapsulation in C++ with getter method

在下面的代碼中,我將值從另一個類函數分配給url。 我收到了代碼審查評論'將url設為私有並實現getter函數,該函數應該通過引用傳遞的輸出參數返回std::string值'

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

我對上面的注釋感到困惑,因為我只使用url來設置http_client類之外的值。 最初,我認為我必須制作一個公共的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;
}

您被要求使用第二種方法實現它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM