전역 연산자 재정의: new 및 delete 교체
복잡한 코드베이스에서는 사용자 정의 new 및 delete 연산자를 일관되게 사용하는 것이 어려울 수 있습니다. 한 가지 문제는 외부 라이브러리 및 STL 사용이 사용자 정의 메모리 관리를 우회할 수 있다는 것입니다.
여러 파일에 오버로드를 포함하는 대신 전역 교체를 수행할 수 있습니다. 이러한 연산자를 정의하는 별도의 번역 단위(TU)를 연결합니다. 이 TU는 다음 기능을 제공합니다:
<code class="cpp">void * operator new(std::size_t n) throw(std::bad_alloc); void operator delete(void * p) throw();</code>
<code class="cpp">void * operator new(decltype(sizeof(0)) n) noexcept(false);</code>
이 TU를 연결하면 사용자 정의 new 및 delete 연산자가 전체적으로 활성화됩니다. 일관된 사용과 향상된 진단 기능을 보장합니다.
위 내용은 C에서 전역 `new` 및 `delete` 연산자를 어떻게 재정의할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!