누군가 C++ 프로그래머에게 Java (및 C#뿐만 아니라) 참조와 shared_ptr (Boost 또는 C++ 0x에서) 간의 가장 중요한 차이점을 설명 할 수 있습니까?shared_ptr과 관리되는 언어 참조의 비교
나는 shared_ptr이 어떻게 구현되는지 더 잘 알지 못합니다. 다음과 같은 차이점에 대해 궁금합니다.
1) 성능. 2) 사이클링. shared_ptr은 순환 될 수 있습니다 (A와 B는 서로 포인터를 유지합니다). 자바에서 사이클링이 가능합니까? 3) 다른 건 없나요?
감사합니다.
성능에 대한주의 사항,'make_shared' (http://www.boost.org/doc/libs/release/libs/smart_ptr/make_shared.html)가 사용되면 레퍼런스 카운트와 참조 된 객체 모두가 하나의 블록에 할당됩니다 . – dalle
아마도 shared_ptr의 가장 큰 성능은 ref 카운터의 인터록 증가/감소입니다. – sbk
@sbk : 왜 이것이 성능에 영향을 미쳤다고 생각합니까? 일반적으로 단일 어셈블리 명령어로 구현됩니다 (암시 적으로이를 지원하는 하드웨어에 대한 잠금이 필요 없음). –