목록Develop (134)
오븐 노트
#include using namespace std; struct StatInfo { int hp; // +0 int attack; // +4 int defence; //+8 }; void EnterLobby(); StatInfo CreatePlayer(); // 포인터x void CreateMonster(StatInfo* info); // 포인터o // player 승리 시 true 패배시 false bool StartBattle(StatInfo* player, StatInfo* monster); int main() { EnterLobby(); return 0; } void EnterLobby() { cout hp = 0; if (player->hp == 0) return false; } } https..
#include using namespace std; // 1) 주소 연산자 (&) // 2) 산술 연산자 (+ -) // 3) 간접 연산자 (*) // 4) 간접 멤버 연산자 struct Player { int hp; // 주소값 + 0 int damage; // 주소값 + 4 }; int main() { int number = 1; // 1) 주소 연산자 (&) // - 해당 변수의 주소를 알려달라 // - 더 정확히 말하면 해당 변수 타입(TYPE)에 따라서 TYPE* 반환 int* pointer = &number; // 2) 산술 연산자 (+ -) number += 1; // 1 증가 // 포인터에서 +나 -등 산술 연산으로 1을 더하거나 빼면, // 한번에 TYPE 만큼의 주소를 입력한 숫자 만..
#include using namespace std; void SetHP(int* hp) { *hp = 100; } int main() { // 포인터 사용 int hp = 1; SetHP(&hp); // 포인터 사용 int number = 1; // 타입의 불일치 // 아래 캐스팅의 경우 늘어난 바이트 수에 따라 다음 주소를 침범하게 되는데 해당 주소에 다른 값이 존재하고 있을 경우 덮어씌워버리는 일을 해버림 __int64* ptr = (__int64*)&number; *ptr = 0xAABBCCDDEEFF; return 0; } https://www.inflearn.com/course/%EC%96%B8%EB%A6%AC%EC%96%BC-3d-mmorpg-1/dashboard [C++과 언리얼로 만드는 ..
#include using namespace std; int main() { // 지금까지 사용한 방식 // number라는 이름의 4바이트 정수 타입의 바구니를 만든다 // number라는 변수 스택 메모리에 할당 // number = 1이라 함은, number 바구니에 1이라는 숫자를 넣으라는 의미 // 따라서 스택 메모리에 있는 특정 주소(number 바구니)에 우리가 원하는 값을 넣은 셈 // number는 비유하자면 메모리에 이름을 붙인 것 // 단점은 TextRPG 원본 수정 // 특정 메모리를 강제로 조작할 수 있게 만들어 주는 수단이 포인터. int number = 1; // TYPE* 변수이름; // 2가지 요소 // - TYPE // - * // 바구니는 바구니이지만 // [주소를 저장..
#include using namespace std; enum playerType { PT_Knight = 1, PT_Archer = 2, PT_Mage = 3, }; enum MonsterType { MT_Slime = 1, MT_Orc = 2, MT_Skeleton = 3, }; struct ObjectInfo { int type; int hp; int attack; int defence; }; // 구조체 멤버의 타입이 각기 다른 경우 padding 값이 할당되어 정렬됨 ObjectInfo playerInfo; ObjectInfo monsterInfo; void EnterLobby(); void SelectPlayer(); void EnterField(); void CreateRandomMonste..
#include using namespace std; enum playerType { PT_Knight = 1, PT_Archer = 2, PT_Mage = 3, }; enum MonsterType { MT_Slime = 1, MT_Orc = 2, MT_Skeleton = 3, }; int playerType; int hp; int attack; int defance; int monsterType; int monsterHp; int monsterAttack; int monsterDefence; void EnterLobby(); void SelectPlayer(); void EnterField(); void CreateRandomMonster(); int main() { // 랜덤 시드 설정 srand(t..
오버로딩 (중복 정의 : 함수명 재사용) 호출 시 같은 이름의 함수더라도 매개변수로 인해 구분이 가능할 경우 같은 이름이어도 사용이 가능하다. - 매개변수의 개수가 다를 경우 (기본 인자값 주의) - 매개변수의 타입이 다를 경우 (순서 포함) - 반환 형식은 해당되지 않음 #include using namespace std; int Add(int a, int b) { return a + b; } int Add(int a) { return a + 1; } float Add(float a, float b) { return a + b; } int main() { int result = Add(1, 2); cout