without haste but without rest
[C++] 소멸자 본문
0. 소멸자
소멸자(Destructor)는 객체를 제거할 때 사용하는 문법이다.
객체의 수명이 다하면 컴파일러가 자동으로 소멸자 함수를 호출한다.
소멸자를 정의할 수 있다.
1. 소멸자 예제 코드
클래스 이름과 동일하게 선언한다. ~Student() { } 부분이 소멸자를 정의하는 부분이다. (정의하지 않는 경우 디폴트로 아무것도 출력되지 않는다.)
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
int age;
int absent;
public:
Student(string name, int age) : name(name), age(age), absent(0) {}
~Student() {
cout << "객체 삭제";
}
void absentUp() { absent++; }
void show() {
cout << name << ", " << absent << endl;
}
};
int main(void) {
Student* s = new Student("Jack", 20);
s->absentUp();
Student s2(*s);
s2.absentUp();
s->show();
s2.show();
delete s; // 동적 할당 했으므로 성공
delete& s2; // 동적 할당이 아니므로 오류 발생
system("pause");
}
'ProgrammingLanguage > C++' 카테고리의 다른 글
[C++] 생성자 (0) | 2020.03.02 |
---|---|
[C++] 클래스 (0) | 2020.03.02 |
[C++] 튜토리얼 (0) | 2020.03.02 |
Comments