'new Operator'와 'Operator new'를 구별하는 것은 혼란스러울 수 있습니다. 다음은 구별을 명확히 하기 위한 심층적인 설명입니다.
Operator new는 힙에서 초기화되지 않은 메모리를 할당하는 표준 C 함수입니다. 이는 malloc() 함수와 유사하게 작동하지만 C에만 해당됩니다.
new 연산자를 직접 호출하여 원시 메모리를 예약할 수 있습니다.
char *x = static_cast<char *>(operator new(100));
new 연산자를 오버로드하는 것이 가능하므로 다음을 수행할 수 있습니다. 특정 클래스 또는 전역적으로 메모리 할당을 사용자 정의합니다.
"new 연산자"는 C에서 객체를 생성하는 데 사용되는 기본 방법입니다. new 연산자와 클래스 생성자의 기능을 결합합니다.
new 연산자를 사용하는 경우:
my_class *x = new my_class(0);
먼저 new 연산자를 호출하여 my_class 객체에 원시 메모리를 할당합니다. 이어서 생성자 my_class(0)를 호출하여 해당 메모리 내의 객체를 초기화합니다. my_class에 임베디드 또는 기본 클래스 객체가 포함된 경우 해당 생성자도 호출됩니다.
"new 연산자"와 "operator new"의 근본적인 차이점은 해당 동작에 있습니다.
요약하면 연산자 new는 하위 수준입니다. 원시 메모리 할당을 위한 함수인 반면, "new 연산자"는 메모리 할당 및 객체 초기화를 원활하게 처리하는 더 높은 수준의 추상화입니다.
위 내용은 C `new` 연산자와 `operator new`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!