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 。如果是这样,是否所有此类功能都应提供两个版本?对我来说,我觉得很乏味!