class T
{};
class AccessT
{
public:
boost::shared_ptr<const T> getT() const {return m_T;}
boost::shared_ptr<T> getT() {return m_T;}
private:
boost::shared_ptr<T> m_T;
};
質問> レガシー プロジェクトで上記のようなコードをたくさん見ました。私は本当にそうする意味を理解していません。代わりに、単に以下を提供するだけではどうですか:
class T
{};
class AccessTModified
{
public:
boost::shared_ptr<T> getT() const { return m_T; }
private:
boost::shared_ptr<T> m_T;
};
最初の引数はboost::shared_ptr<const T> getT() const
、 const オブジェクトが誤って T を変更できないようにすることです。その場合、そのような関数はすべて 2 つのバージョンを提供する必要がありますか? 私にとって、私はとても退屈に感じます!