2016-12-08 4 views
0

하나의 매개 변수를 사용하는 생성자에 대해 명시 적 키워드가하는 일을 이해하면 원하지 않는 동작의 가능성을 확실하게 제한 할 수 있습니다. 나는 또한 이동 및 복사 생성자가하는 것을 이해합니다.명시 적 키워드, 생성자 및 복사 생성자 이동 및 이동 및 복사 생성자 비활성화

내가 이해할 수없는 것은 명시 적 생성자가 이동 및 복사 생성자에 미치는 영향과 복사 및 이동 생성자를 비활성화 할 수있는 경우를 보았습니다 ... 왜 그 모든 작업을 수행하겠습니까? 모든 것은 저에게 아주 모호합니다.

+0

http://stackoverflow.com/questions/25529772/explicit-copy-constructor-and-stdsort?rq=1 가능한 복제본은 무엇입니까? – Rene

+0

클래스의 객체를 복사하는 것이 논리적이지 않기 때문에 복사를 비활성화 할 수 있습니다. 싱글 톤은 복사가 불가능합니다. – StoryTeller

+0

명시 적 복사 생성자에 대해 묻는 중입니다. 그러나 명시 적 생성자와 복사 및 이동 생성자에 미치는 영향에 대해 묻고 있습니다. 그건 내 질문에 대답하지 않지만, 고마워, 나는 그것을 읽을 것입니다. –

답변

0

명시 적 복사 생성자는 명시 적 변환 생성자와 동일한 방식으로 작동하며 암시 적으로 호출 할 수 없습니다. 유일한 차이점은 개체가 만들어지는 것입니다.

나는 또한 이것에 대한 사용 사례가 매우 희귀하고 멀리 있다고 믿습니다.

좀 더 일반적인 경우는 클래스의 복사 생성자 및 할당 연산자를 삭제하는 것입니다 (= delete). 이것은 고유 자원을 나타내는 오브젝트에 유용하므로 복사해서는 안됩니다. std::cout은 존재하지만 복사해서는 안되는 개체의 예입니다.