[C++] 22. 생성자와 소멸자
2022. 6. 7. 16:21ㆍ코딩 1막 <C++개념편>
728x90
#include <iostream>
using namespace std;
// 구조체의 생성자와 소멸자
// 생성자 : 메모리에 할당될 때 호출되는 함수
// 생성자는 초기화할때 쓰임
// 소멸자 : 메모리에서 해제될 때 호출되는 함수
struct Monster
{
// 필드(구조체의 속성)
string name;
float hp;
float damage;
// 기본생성자의 형태
// 구조체이름() { }
Monster()
{
cout << "기본 생성자 호출" << endl;
name = "초기화";
hp = 0;
damage = 0;
}
// 생성자 오버로딩
Monster(string _name, float _hp, float _damage)
{
SetInfo(_name, _hp, _damage);
cout << name << "생성자 호출" << endl;
}
// 소멸자의 형태
// ~구조체이름() { }
~Monster()
{
cout << name << "소멸자 호출" << endl;
}
void PrintInfo()
{
cout << name << endl;
cout << hp << endl;
cout << damage << endl;
}
void SetInfo(string _name, float _hp, float _damage)
{
name = _name;
hp = _hp;
damage = _damage;
}
// 함수(구조체의 기능)
void Hit(float _damage)
{
hp -= _damage;
}
};
// 전역변수는 데이터영역
// 데이터영역에 쌓이는 것은 프로그래밍이 시작될때 할당되고 끝날때 해제된다
Monster monsterD("D", 1, 1);
void main()
{
Monster monsterA("A", 1, 1);
Monster monsterB("B", 100, 10);
Monster monsterC("C", 10, 1);
}
728x90
'코딩 1막 <C++개념편>' 카테고리의 다른 글
[C++] 24. 동적할당이란 (0) | 2022.06.07 |
---|---|
[C++] 23. 복사생성자 (참조자의 개념) (0) | 2022.06.07 |
[C++] 21. 랜덤 (0) | 2022.06.02 |
[C++] 20. 입력 (0) | 2022.06.02 |
[C++] 19. 멤버함수 (0) | 2022.06.02 |