[C++] 함수의 매개변수로 구조체를 넣어보고 할당과 해제 순서 테스트하기
2022. 6. 7. 16:57ㆍ코딩 1막 <C++개념편>/코딩 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(Monster& target)
{
cout << "복사 생성자 호출" << endl;
name = "복사";
}
// 오버로딩된 형태의 생성자 만들기
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;
}
};
// Monster monsterD("D", 1, 1);
void Func(Monster target)
{
Monster monsterE("E", 1, 1);
}
void main()
{
Monster monsterA("A", 1, 1);
Monster monsterB("B", 100, 10);
Monster monsterC("C", 100, 10);
cout << "---함수 호출 전---" << endl;
Func(monsterA);
cout << "---함수 호출 후---" << endl;
}
* 복사생성자라는 새로운 개념이 등장했다.
* 복사생성자를 알기위해서 참조자라는 개념부터 알아야 한다.
* 포인트변수를 사용했던 이유를 참조자가 대신 해줄수 있다.
728x90
'코딩 1막 <C++개념편> > 코딩 1막 <C++응용편>' 카테고리의 다른 글
[C++] 구조체 변수의 동적할당과 해제 (0) | 2022.06.07 |
---|---|
[C++] 참조자를 사용해서 swap함수 만들기 (0) | 2022.06.07 |
[C++] 내가 만든 TextRPG 게임 (0) | 2022.06.03 |
[C++] 숫자야구 게임 (0) | 2022.06.03 |
[C++] 가위바위보 게임 (0) | 2022.06.02 |