首页 > 解决方案 > 如何使用“get”方法返回类的私有 std::unique_ptr 成员

问题描述

我创建了一个具有私有 std::unique_ptr 成员的类,即m_VBOm_EBO,如图所示。

class VAO {

public:
    VAO();
    std::unique_ptr<VBO> GetVBO();
    std::unique_ptr<EBO> GetEBO();

private:
    std::unique_ptr<VBO> m_VBO;
    std::unique_ptr<EBO> m_EBO;
};

该类还包括“get”方法来保护和返回这些成员以供需要时使用。

这些“get”方法的定义是,

//*************************************************************************************************
std::unique_ptr<VBO> VAO::GetVBO()
{
    return std::make_unique<VBO>(m_VBO);
    //return std::make_unique<VBO>();
}

//*************************************************************************************************
std::unique_ptr<EBO> VAO::GetEBO()
{
    //return std::make_unique<EBO>(m_EBO);
    return std::make_unique<EBO>();
}

这是行不通的。

我无法弄清楚编写“get”方法的正确技术。

它是如何完成的?

标签: c++unique-ptr

解决方案



推荐阅读