Đó là cách chính xác để kéo dài tuổi const đúng đắn của một lớp cho các thành viên nhọn của nó? Trong đoạn mã ví dụ, là phiên bản ổn định của phương pháp get sẽ tạo ra một std::shared_ptr
có tài liệu tham khảo truy cập cũng giống như các thành viên nội bộ m_b
, hoặc là nó bắt đầu một lần nữa kể từ 0
?gợi ý chung và đúng đắn const
class A
{
std::shared_ptr<B> m_b;
public:
std::shared_ptr< const B > get_b() const
{
return m_b;
}
std::shared_ptr<B> get_b()
{
return m_b;
}
}
Bạn có thể muốn cũng thực hiện 'get_const_b() ', tương tự như phương pháp' cbegin()' và 'cend()' của các thùng chứa tiêu chuẩn (http://en.cppreference.com/w/cpp/container/vector/begin). – filipos