⭐ Programming/C++
[C++] 배열과 Swap함수를 활용한 연습: 로또 번호 생성기
[C++] 배열과 Swap함수를 활용한 연습: 로또 번호 생성기
2022.03.27로또 번호 생성기 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 1. Swap 함수 만들기 void Swap(int& a, int& b) { int temp = a; a = b; b = temp; } 원본 데이터를 수정하기 위해 & 참조 타입으로 매개변수를 받는다. 2. 정렬 함수 만들기 정렬 함수 만들기 (작은 숫자가 먼저 오도록 정렬) { 1 ,3, 5, 6, 15, 42 } => { 1, 3, 5, 6, 15, 42 } void Sort(int numbers[], int count) { for (int i = 0; i < count..
[C++] 포인터 vs 배열
[C++] 포인터 vs 배열
2022.03.26포인터 vs 배열 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 포인터 vs 배열 문자열 = 문자 배열 const char msg1[] = { 'H','e', 'l', 'l', 'o', '\0' }; // 끝났다는 의미로 아스키코드 null인 '\0' 입력 cout char*) // 즉 배열의 내용 전체를 넘긴게 아니라, 시작 주소(포인터)만 넘긴 것 void Test(char a[]) { a[0] = 'x'; } int a = 0; // [매개변수][RET][지역변수(a=0)] Test(a); cout
[C++] 배열 기초
[C++] 배열 기초
2022.03.26배열 기초 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 배열의 크기는 상수 TYPE 이름[개수] struct StatInfo { int hp = 0xAAAAAAAA; int attack = 0xBBBBBBBB; int defence = 0xCCCCCCCC; }; 배열의 크기는 상수여야 함 (Visual Studio 컴파일러 기준) 그래서 아래와 같이 const 를 붙여준다. const int monsterCount = 10; StatInfo monsters[monsterCount]; 배열 이름의 작동 방식 그런데 배열은 [이름] 조금 ..
[C++] 포인터 vs 참조, const
[C++] 포인터 vs 참조, const
2022.03.26포인터 vs 참조 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 포인터 vs 참조 성능 : 포인터와 참조 똑같다 편의성 : 참조 승! 1. 편의성 관련 편의성 관련 - 편의성이 좋다는게 꼭 장점만은 아니다. - 포인터는 주소를 넘기니 확실하게 원본을 넘긴다는 힌트를 줄 수 있는데 - 참조는 자연스럽게 모르고 지나칠 수도 있음! - ex) 마음대로 고친다면? const를 사용해서 이런 마음대로 고치는 부분 개선 가능 void PrintInfoByRef(const StatInfo& info) { cout
[C++] 참조 기초
[C++] 참조 기초
2022.03.26참조 기초 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 전달 방식들 1. 값 전달 방식 - 임시적으로 매개변수에 복사받은 구조체에 접근해서 꺼내쓰는 방식 - 원본 정보는 건드리지 않는다. - 아래의 경우, 원본의 정보는 건드리지 않고 임시값만 수정하고 함수가 호출되었을때 스택영역은 더 이상 유효하지 않아 날라가기 때문에 아무런 변화도 일어나지 않는다. [매개변수][RET][지역변수(info)] [매개변수(info(100, 8, 5)][RET][지역변수] [매개변수][RET][지역변수(info)] void CreateMonster(Sta..
[C++] 포인터 실습
[C++] 포인터 실습
2022.03.26포인터 실습 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 복사 version - void EnterLobby에서 CreatePlayer() 처리과정 void EnterLobby() { StatInfo player; player.hp = 0xbbbbbbbb; player.attack = 0xbbbbbbbb; player.defence = 0xbbbbbbbb; player = CreatePlayer(); } StatInfo CreatePlayer() { StatInfo ret; cout hp hp = 0; cout
[C++] 포인터 연산
[C++] 포인터 연산
2022.03.25포인터 연산 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 포인터 연산의 종류 1) 주소 연산자 (&) 2) 산술 연산자 ( + - ) 3) 간접 연산자 ( * ) 4) 간접 멤버 연산자 ( -> ) 1. 주소 연산자 (&) 포인터는 [주소를 담는 바구니] 해당 변수의 주소를 알려준다. 더 정확히 말하면 해당 변수 타입(TYPE)에 따라서 TYPE* 반환 2. 산술 연산자 ( + - ) number = number + 1; number++; ++number; number += number; pointer = pointer + 1; poi..
[C++] 포인터 #2
[C++] 포인터 #2
2022.03.25포인터 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 포인터 근데 남의 주소를 갖고 뭘 하라는거지? 추가 문법 : [주소를 저장하는 바구니]가 가리키는 주소로 가서 무엇인가를 해라! *변수이름 = 값; 포탈을 타고 순간이동 한다고 생각해보자 *이 여러번 등장하니 헷갈리는데, 사용 시점에 따라서 구분해서 기억하자 변수 선언(주소를 저장하는 바구니)다. 사용할 때 (포탈 타고 순간이동) TYPE은 왜 붙여줄까? * = 포인터의 의미 = 주소를 저장하는 바구니 = 4 or 8바이트 고정 크기 주소에 가면 뭐가 있는데? ex) 결혼식 청첩장에 ..
[C++] 포인터 #1
[C++] 포인터 #1
2022.03.24포인터 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 지금까지 사용한 방식 number라는 이름의 4바이트 정수 타입의 바구니를 만든다 number라는 변수 스택 메모리에 할당 number = 1라 함은, number 바구니에 1이라는 숫자를 넣으라는 의미. 따라서 스택 메모리에 있는 특정 주소(number 바구니)에 우리가 원하는 값을 넣은 셈이다. number는 비유하자면 메모리에 이름을 붙인 것 (찰떡같이 알아들어서) BUT, 원본 수정이 불편하다. 포인터 기초 TYPE* 변수이름; 일단 2가지 요소 TYPE * 바구니는 바구니인데..
[C++] TextRPG
[C++] TextRPG
2022.03.241 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12..
[C++] 오버 로딩, 오버 로딩과 오버라이딩의 차이, 함수 마무리
[C++] 오버 로딩, 오버 로딩과 오버라이딩의 차이, 함수 마무리
2022.03.22함수 마무리 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 오버 로딩 오버로딩은 중복 정의이다. 함수 이름의 재사용을 의미한다. 오버 로딩과 오버라이딩의 차이 함수 오버로딩(Overloading)과 오버라이딩(Overriding)은 객체 지향 프로그래밍에서 중요한 개념이다. 함수 오버로딩(Overloading)은 하나의 클래스 내에서 같은 이름을 가진 함수를 여러 개 정의하는 것을 의미한다. 이때 함수의 매개변수의 수나 타입, 반환값의 타입 등을 다르게 정의하여 사용합니다. 이렇게 정의된 여러 개의 함수 중에서 호출 시 전달된 인자와 가..
[C++] 호출 스택
[C++] 호출 스택
2022.03.221 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include using namespace std; // 호출 스택 void Func1() { cout