Metaverse/복습

C++ - 생성자와 소멸자

onenewkong 2023. 12. 27. 23:26

생성자

  • 객체만 생성해도 생성자는 자동 호출됨
  • 상속관계에 있을 때 자식 객체를 생성하면 맨위 부모 클래스의 생성자부터 차례대로 생성자 호출이 일어남
  • 생성자가 private이라면 다른 함수에서 객체 선언 시 생성자 호출 자체가 불가능해짐
#include <iostream>
#include <string>

using namespace std;

class A {
public:
	A() {
		cout << "Class A" << endl;
	}
};

class B : public A {
	int num;
	string name;
    
public:
	B() {
		cout << "Class B" << endl;
	}

	B(int num, string name) {
		this->num = num;
		this->name = name;
		printf("Class B num = %d, name = %s\n", this->num, this->name.c_str());
	}
};

int main(void) {
	B b(10, "Yubin");
	return 0;
}

 

실행 화면>>

 

소멸자의 호출 시점

  • 데이터 영역: 해당 프로그램이 종료될 때
  • 스택 영역: 해당 객체가 정의된 블록을 벗어날 때
  • 힙 영역: delete를 사용하여 해당 객체의 메모리를 반환할 때
  • 임시 객체: 임시 객체의 사용을 마쳤을 때

 

'Metaverse > 복습' 카테고리의 다른 글

C++ - 복사 생성자  (1) 2024.01.03
C++ - 범위 기반 for문  (1) 2024.01.03
운영체제 - Call Stack  (0) 2023.12.27
운영체제 - Thread  (0) 2023.12.27
게임 서버 - 관계형 데이터베이스와 NoSQL  (0) 2023.08.16