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;
};
Câu hỏi> Tôi thấy nhiều mã tương tự như trên trong dự án kế thừa. Tôi thực sự không hiểu điểm làm như vậy. Tại sao không chỉ đơn giản là cung cấp sau đây thay vì:Tại sao cung cấp hai chức năng nhận được
class T
{};
class AccessTModified
{
public:
boost::shared_ptr<T> getT() const { return m_T; }
private:
boost::shared_ptr<T> m_T;
};
Đối số ban đầu có thể là boost::shared_ptr<const T> getT() const
sẽ không cho phép đối tượng const đổi T một cách tình cờ. Nếu đó là trường hợp, nó là một thực tế rằng tất cả các chức năng như vậy nên cung cấp hai phiên bản? Đối với tôi, tôi cảm thấy rất tẻ nhạt!