C++ Algorithm & Study/C++ & Algorithm Strategies

[C++] 6 - 기초 문법 공부 일지(동적 할당)

GameChoi 2022. 12. 1. 00:40
  • 동적 할당에 사용할 클래스 생성
    • Player, Knight
class Player
{
public:
	Player() { cout << "Player()" << endl; }
	virtual ~Player() { cout << "~Player()" << endl; }
}; // pch.h

class Knight : public Player
{
public:
	Knight() { cout << "Knight()" << endl; }
	virtual ~Knight() { cout << "~Knight()" << endl; }
}; // pch.h
  • 동적 할당 C
    • 생성자 소멸자 생성 여부를 확인할 수 없음
int main()
{
#pragma region 동적 할당 C언어
	// 생성자 소멸자 생성여부 X
	void* ptr = malloc(sizeof(Player));

	Player* player = (Player*)ptr;
	free(ptr);
#pragma endregion
}
  • 동적 할당 C++
    • new, delete
int main()
{
#pragma region 동적 할당 C++
	// new delete - 생성자 소멸자 사용
	Player* player = new Player();

	delete player; // 메모리 leak이 일어 날 수 있으므로 delete
	player = nullptr; // 삭제를 했어도 기존 값을 사용하면 메모리 오염 - 재사용 하지 못하게 nullptr

#pragma endregion
}