[C++] 외부함수들을 멤버함수로 변환하고 비교해보기(구조체)
2022. 6. 2. 19:02ㆍ코딩 1막 <C++개념편>/코딩 1막 <C++응용편>
728x90
* 멤버함수가 무엇인지, 외부함수는 무엇인지 서로 비교하고 어떤 상황에서 유리한지 생각해보자.
* 코딩의 전체적인 구조나 흐름은 멤버함수를 짤때 더 효율적이고 가속성이 좋은 것 같다.
// 실습_구조체변수를 멤버변수로 썼던 외부함수들을 멤버함수로 변환시켜보자
#include <iostream>
#include <string>
using namespace std;
struct Monster
{
string name;
int lv;
int hp;
int damage;
// 멤버함수
void PrintInfo()
{
cout << "이름 : " << name << endl;
cout << "레벨 : " << lv << endl;
cout << "체력 : " << hp << endl;
cout << "데미지 : " << damage << endl;
}
void SetInfo(string newName, int newLv, int newHp, int newDamage)
{
name = newName;
lv = newLv;
hp = newHp;
damage = newDamage;
}
};
// 구조체의 멤버변수들을 출력하는 외부함수
void PrintInfo(Monster target)
{
cout << "이름 : " << target.name << endl;
cout << "레벨 : " << target.lv << endl;
cout << "체력 : " << target.hp << endl;
cout << "데미지 : " << target.damage << endl;
}
// 구조체의 멤버변수들의 값을 셋팅하는 외부함수
void SetInfo(Monster* target, string newName, int newLv, int newHp, int newDamage)
{
target->name = newName;
target->lv = newLv;
target->hp = newHp;
target->damage = newDamage;
}
void main()
{
Monster monsterA;
monsterA.SetInfo("골렘", 100, 500000, 30000);
monsterA.PrintInfo();
Monster monsterB;
monsterB.SetInfo("슬라임", 5, 500, 50);
monsterB.PrintInfo();
/*
Monster monsters[] =
{
{ "골렘", 100, 500000, 30000 },
{ "다크나이트", 50, 30000, 1000 },
{ "위자드", 15, 1500, 100 },
{ "슬라임", 5, 500, 50 },
{ "리본돼지", 10, 1000, 80 }
};
*/
}
728x90
'코딩 1막 <C++개념편> > 코딩 1막 <C++응용편>' 카테고리의 다른 글
[C++] 덧셈연산, 몬스터생성, 사칙연산계산기만들기 (0) | 2022.06.02 |
---|---|
[C++] 멤버함수응용 : monster 사냥 (0) | 2022.06.02 |
[C++] 특정한 값을 출력하는 구조체를 만들어보자 (0) | 2022.06.02 |
[C++] 구조체를 써서 축구팀을 만들어 보자 (0) | 2022.05.31 |
[C++] 2차원배열을 써서 구구단을 만들어보자 (0) | 2022.05.31 |