다음과 같은 C ++의 공유 포인터에 대한 접근 자 메서드를 작성하고 있습니다.
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
따라서 getBar()
반환 유형 의 const-ness를 지원 boost::shared_ptr
하려면 Bar
it이 가리키는 수정을 방지 해야합니다 . 내 생각 엔 그것이 shared_ptr<const Bar>
내가 그것을하기 위해 돌아가고 싶은 타입이다. 반면 const shared_ptr<Bar>
에 포인터 자체가 다른 것을 가리 키도록 재 할당 하는 것을 막지 Bar
만 Bar
그것이 가리키는 것을 수정할 수있게 한다 ... 그러나 나는 확실하지 않다. 확실히 아는 사람이 이것을 확인하거나 내가 틀렸다면 나를 바로 잡을 수 있다면 감사하겠습니다. 감사!
const
일반적으로 _precedes를 수정하므로 T *const
에 대한 const
포인터 T
및 T const*
에 대한 포인터 const
T
입니다. 그리고 const
앞에 아무것도 사용 하지 않는 것이 가장 좋습니다 .
T *const
와는 T const *
차이와 같습니다 const shared_ptr<T>
과shared_ptr<const T>
*
및->
이를 확인 할 수 있습니다.