소멸자 예제

 Senast ändrad 1 augusti, 2019 kl 23:33
aug 012019
 

소멸자란? 소멸자는 개체를 소멸하거나 삭제하는 멤버 함수입니다. 풀을 클래스로 전환하는 것이 좋은 이유는 사용자가 모든 사용자가 공유하는 하나의 대규모 풀을 사용하는 대신 N개의 다른 메모리 풀을 만들 수 있기 때문입니다. 이를 통해 사용자는 펑키한 작업을 많이 할 수 있습니다. 예를 들어, 미친 듯이 메모리를 할당하는 시스템의 덩어리가 있는 경우 풀에서 모든 메모리를 할당 할 수 있으며 작은 조각에서 삭제를 수행하는 것을 귀찮게하지 않을 수 있습니다. 또는 운영 체제가 여러 프로세스 간에 공유되는 메모리를 특별히 제공하는 ”공유 메모리” 영역을 설정하고 풀이 프로세스 로컬 메모리가 아닌 공유 메모리 의 청크를 밖으로 내하도록 할 수 있습니다. 또 다른 각도: 많은 시스템은 힙이 아닌 스택에서 메모리 블록을 할당하는 alloca()라고 하는 비표준 함수를 지원합니다. 함수가 반환되면 이 메모리 블록이 자동으로 사라지므로 명시적 삭제가 필요하지 않습니다. 누군가alloca()를 사용하여 Pool에 큰 메모리 덩어리를 제공 한 다음 해당 Pool에서 할당 된 모든 작은 조각이 로컬인 것처럼 작동합니다 . 물론 소멸자는 이러한 경우 중 일부에서 호출되지 않으며, 소멸자가 사소한 작업을 수행하면 이러한 기술을 사용할 수 없지만 소멸자가 단순히 메모리를 할당 하는 경우 이러한 종류의 기술이 유용할 수 있습니다. 예, 이것은 추상화를 위반합니다. 우리의 반환 값은 기본 형식이기 때문에 여기에서 값으로 반환해야합니다. 그에 따라 예제를 업데이트했습니다.

요컨대, 왜 우리는 간단한 삭제 연산자 (예를 들어: 간단한 삭제;) 포함 할 필요가 없습니다 마지막 예에서? 소멸자는 클래스 멤버 함수를 자유롭게 호출하고 클래스 멤버 데이터에 액세스할 수 있습니다. 예제 프로그램 단순에서는 -> 연산자를 사용합니다. 나는이 단원에서, 이것은 독자를 혼란스럽게 생각합니다. 따라서 앞의 예제에서 줄이 Base1의 소멸자 앞에 Base2의 소멸자가 호출되면 더 좋을 것이라고 생각합니다. 조언: 필요한 경우가 아니면 이 ”새 배치” 구문을 사용하지 마십시오. 개체가 메모리의 특정 위치에 배치되는 것을 정말로 신경 쓰는 경우에만 사용하십시오. 예를 들어 하드웨어에 메모리 매핑된 I/O 타이머 장치가 있고 해당 메모리 위치에 Clock 개체를 배치하려는 경우를 예로 들 수 있습니다. 비정적 멤버 개체에 대한 소멸자는 클래스 선언에 나타나는 역순으로 호출됩니다. 이러한 멤버의 구성에 사용되는 선택적 멤버 초기화 목록은 구성 또는 파괴 순서에 영향을 주지 않습니다. 소멸자는 클래스와 이름이 같지만 물결표 (~) Hello Alex가 앞에 오는 함수입니다! 코드에서 `소멸자 예제`는 7줄과 8줄에 들여쓰기가 같아서는 안 됩니다. 소멸자는 ”죽을 준비” 멤버 함수입니다.

Tyvärr, det är nu stängt för kommentarer här.

© 2011 Radiostyrd Bilsport Suffusion theme by Sayontan Sinha