Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 3법칙

<시간/>

3의 법칙은 C++를 사용할 때의 경험 법칙입니다. 이것은 수업에 다음 중 하나가 필요한 경우

  • 복사 생성자,
  • 할당 연산자,
  • 또는 소멸자,

명시적으로 정의된 경우 이 세 가지가 모두 필요할 수 있습니다.

왜 이런거야? 클래스에 위의 항목 중 하나가 필요한 경우 동적으로 할당된 리소스를 관리하고 있고 이를 성공적으로 달성하기 위해 다른 리소스가 필요할 수 있기 때문입니다. 예를 들어 할당 연산자가 필요한 경우 현재 참조로 복사되고 있는 개체의 복사본을 만들어 리소스를 할당하게 됩니다. 복사를 위한 복사 생성자와 이러한 리소스를 해제하기 위한 소멸자가 필요합니다.

1. 복사 생성자 − 컴파일러 제공 복사 생성자는 모든 Foo Manager 속성의 구성원별 복사를 수행합니다. 이것은 할당 연산자와 동일한 문제를 제기합니다.

2. 할당 연산자 − 제공하지 않으면 컴파일러에서 기본 할당 연산자를 생성합니다. 기본 할당 작업은 멤버별 복사 기능이며 전체 복사가 아닌 얕은 복사를 수행합니다. 메모리 누수, 잘못된 할당과 같은 문제가 발생할 수 있습니다.

3. 소멸자 − 이 관리자가 범위를 벗어나면 관리하고 있던 모든 리소스를 해제해야 합니다.