현재 프로젝트에서 boost::ptr_vector
을 사용하려고 시도하고 있으며 push_back() 메서드에서 매개 변수화 된 생성자를 사용할 수 있는지 궁금하거나 기본 생성자를 사용해야합니까?boost :: ptr_vector 생성자
2 차 질문으로 정의하면 기본 생성자가 계속 사용됩니까?
이
최선의 후속하지 않을 수도 있습니다,하지만 난boost::ptr_vector
으로 본 구현의 대부분은
push_back()
방법은
new
연산자를 취 것으로 나타났다. 개체를 만든 다음 해당 개체의 포인터를 컨테이너의
push_back()
메서드에 제공 할 수 있습니까?
ptr_vector는 일반 벡터와 마찬가지로 포함 된 객체입니다. (ptr_vectors의 포인트는 포인터를 저장하지만 실제 객체를 포함하는 벡터의 의미를 제공하는 것입니다.) 그래서 거기에 정적 객체에 대한 포인터를 저장하는 것은 좋은 생각이 아닙니다. –
@davidschwartz는 테스트를 수행했습니다. 적절한 유형의'정적 '객체를'ptr_vector'에 넣으려고 시도했지만, 참조 또는 참조 취소를 수행 할 수 없습니다. 결론 :'static'객체를'ptr_vector '에 배치하려고 시도하는 것은 불법이며,'ptr_container'도 가능합니다. – gardian06