c++ 소멸자 예제

예, 이것은 추상화를 위반합니다. 우리의 반환 값은 기본 형식이기 때문에 여기에서 값으로 반환해야합니다. 그에 따라 예제를 업데이트했습니다. 30줄(단순 삭제)을 주석으로 지정하면 « 단순 2 를 삭제 »[출력]이 인쇄되지 않습니다. 그러나 마지막 예제에서 삭제 연산자없이 « 단순 1 파괴 »가 인쇄됩니다. 네, 그렇습니다. 이는 예를 들어 개체가 파괴될 때 소멸자가 즉시 실행됨을 보여주기 위해 수행되었습니다. 다음 예제에서는 d가 범위를 벗어날 때 소멸자 호출의 순서는 ~local1(), ~local0(), ~member1(), ~member1(), ~base1(), ~base0() : 섹션 소멸자 명명 « 생성자처럼 소멸자 이름은 명시적으로 호출되어서는 안됩니다. » RAII에 대해 자세히 설명해 주시겠습니까? 첫 번째 예제에서 사용되는 어설션 함수는 무엇입니까? 이 단원의 맨 위에 있는 IntArray 클래스는 생성자의 할당, 소멸자의 할당을 구현하는 클래스의 예입니다. std::문자열 및 std::vector는 RAII를 따르는 표준 라이브러리의 클래스의 예입니다. 이것은 당신이 말한 거야? 그렇지 않다면, 거기에 예를 넣을 수 있다면 정말 놀랄 것입니다. 다시 한번, 난 당신이 튜토리얼에 넣어 한 모든 작업을 주셔서 감사합니다! 그것은 매우 도움이됩니다.

int *요소; int 크기; int 길이; 생성자 목록(int maxsize) { 크기=최대 크기; 요소=새 int[크기]; 길이=0; } //////////////////////////////////////////////////삭제 [] 요소/ / 삭제 [] 요소; } ///////////////// 목록 구조보이드 쇼구조체() { if(!isEmpty()) { (int i=0;i<length;i++) { cout<<"Element:"<elements[i]<<endl; } } else { cout<<"표시: 표시할 항목이 없습니다. 목록은 비어 있습니다n"; } } } } } } } } } }/////////////////////////////////////////////목록 조작 작업 ///////목록 조작 작업 후 삽입 (int newDataItem) { if(!isFull()) { 요소[길이]=newDataItem; 길이++;} 목록이 전체n"입니다. } } }/ 데이터 항목 int 제거 () {if(!isEmpty()) { 길이[길이]; }else {cout<"제거: 항목을 제거할 수 없습니다. 목록은 비어 있습니다n"; } } } // 데이터 항목 보이드 바꾸기 (int newDataItem, int 위치) { //조건: 목록에는 최소 위치+1 데이터 항목이 포함되어 있습니다. //결과: 목록에서 위치에 있는 데이터 항목을 제거하고 해당 위치에서 사용자가 요청한 번호를 대체합니다. 위치) { cout<<"교체: 항목을 교체할 수 없습니다. 잘못된 위치 요청n"; } {//implement 여기서 로직 } } / / 찾을 수 있는 숫자 bool 찾기 (int searchDataItem) { //조건: 목록이 비어 있지 않음. //결과: 숫자가 목록에 있는지 여부(!isEmpty()) { (int i=0;i<length;i++) { //구현 로직 } 예제는 생성자의 개념을 설명합니다 – 관련 기사 : C ++ C ++의 C ++ 순수 가상 소멸자의 생성자는이 단원에서 소멸자 예제를 이해하려고 노력하고 있습니다.