⭐ Programming/C++
[C++] 다형성 (Polymorphism)
[C++] 다형성 (Polymorphism)
2022.04.05다형성 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 다형성: 오버로딩 vs. 오버라이딩 다형성(Polymorphism = Poly + morph) = 겉은 똑같은데, 기능이 다르게 동작한다 - 오버로딩(Overloading) = 함수 중복 정의 = 함수 이름의 재사용 - 오버라이딩(Overriding) = 재정의 = 부모 클래스의 함수를 자식 클래스에서 재정의 오버로딩과 오버라이딩 #include using namespace std; class Player{ public: void Move() { cout
[C++] 은닉성
[C++] 은닉성
2022.04.04은닉성 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 은닉성 - 은닉성 (Data Hiding) = 캡슐화 (Encapsulation) - 몰라도 되는 것은 깔끔하게 숨기겠다! - 숨기는 이유? 정말 위험하고 건드리면 안되는 경우 다른 경로로 접근하길 원하는 경우 자동차 예시 - 핸들 - 페달 - 엔진 - 문 - 각종 전기선 - 일반 구매자 입장에서 사용하는 것? 핸들 / 페달 / 문 - 몰라도 되는 부품은? (오히려 건드리면 큰일남) - 엔진, 각종 전기선 public / protected / private - public : 누구한테..
[C++] 상속성
[C++] 상속성
2022.04.04상속성 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 상속성 - 클래스로부터 멤버들을 물려받는 것. - 자식 클래스는 부모 클래스의 멤버 변수와 멤버 함수를 사용할 수 있다. - 자식 클래스는 자신만의 변수와 멤버 함수를 추가할 수 있다. - 또한 부모 클래스에 존재하는 멤버 함수를 재정의 할 수 있다. - 상속은 is-a 관계이다 = "~은 ~이다" 관계가 성립되는지 확인 부모 클래스로부터 상속받은 특징들을 자식 클래스에서 추가, 교체, 구체화시킬 수 있다. 객체지향 3요소(OOP Object Oriented Programming) 상..
[C++] 생성자와 소멸자 2
[C++] 생성자와 소멸자 2
2022.04.04생성자와 소멸자 2 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 기본 생성자를 만들지 않는 경우 #include using namespace std; class Knight { public: Knight(int hp) { cout
[C++] 생성자와 소멸자
[C++] 생성자와 소멸자
2022.04.04생성자와 소멸자 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 생성자 (Constructor) 객체가 생성된 후에는 반드시 객체를 초기화하여야 한다. 객체를 초기화하지 않으면 쓰레기값을 가지게 된다. " 객체의 초기화 = 멤버 변수의 값을 초기화 + 객체의 동작에 필요한 메모리 공간이나 기타자원들을 할당 " 생성자(Constructor)를 사용하면 객체의 생성과 동시에 초기화가 가능하다. 클래스에 '소속'된 함수들을 멤버 함수라고 한다. 이 중에서 굉장히 특별한 함수 2종이 있는데, 바로 [시작]과 [끝]을 알리는 함수가 생성자와 소멸자..
[C++] 객체지향
[C++] 객체지향
2022.04.03객체지향 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 객체지향의 시작 - 데이터 + 가공(로직, 동작) - 객체지향 = 객체 - 객체란? 플레이어, 몬스터, Game Room, etc 객체지향 코드 예제 Knight를 설계해보자 - 속성(데이터): hp, attack, x, y coordination - 기능(동작): Move, Attack, Die #include using namespace std; // class는 일종의 설계도 class Knight{ public: // 멤버 함수 선언 void Move(int y, int x)..
[C++] 파일 분할 관리, #ifndef, #endif
[C++] 파일 분할 관리, #ifndef, #endif
2022.04.03파일 분할 관리 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 파일 분할 관리 Test1.h #pragma once // 헤더 파일이 실수로 중복해서 들어가는 상황을 대비해서 적어주자. // #ifndef _TEST1_H__ // #define _TEST1_H__ struct StatInfo { int hp; int attack; int defence; }; void Test_1(); void Test_2(); void Test_3() { } // #endif // #ifndef, define, endif 방식도 있다. Test1.cpp..
[C++] 문자열, strlen, strcpy, StrCat, StrCmp, ReverseStr
[C++] 문자열, strlen, strcpy, StrCat, StrCmp, ReverseStr
2022.03.30문자열 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 문자열 const int BUF_SIZE = 100; // [H][e][l][l][o]['\0][][][][][][][][][][[]... // 100개의 바구니 char a[BUF_SIZE] = "Hello"; int BUF_len = sizeof(a); cout
[C++] TextRPG #3 구현 연습하기
[C++] TextRPG #3 구현 연습하기
2022.03.29TextRPG #3 구현 연습하기 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! TextRPG 구현하기 main - EnterLobby -- CreatePlayer -- EnterGame --- CreateMonsters --- EnterBattle void EnterLobby(); void PrintMessage(const char* msg); void CreatePlayer(StatInfo* playerInfo); void PrintStatInfo(const char* name, const StatInfo& info); void En..
[C++] 포인터와 배열, 메모리 오염
[C++] 포인터와 배열, 메모리 오염
2022.03.28포인터 마무리, 메모리 오염 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 포인터 vs 배열 포인터 - 주소를 담는 바구니 - 원본은 저~ 멀리 어딘가에 있음 - p는 단지 그 곳으로 워프하는 포탈 int* p; 배열 - 진짜배기! 원조 데이터 - 닭장처럼 데이터의 묶음 (엄청 많고 거대함) int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8 }; 포인터 vs 배열 - 그런데 상당히 많은 사람들이 [배열 = 포인터]라 착각하는 경향이 있음. - [배열의 이름]은 배열의 시작 주소값을 가리키는 TYPE* 포인터로 변환 가..
[C++] 다차원 배열, 2차원 배열
[C++] 다차원 배열, 2차원 배열
2022.03.27다차원 배열 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 2차원 배열 int main() { int a[10] = { 1, 2, 3 }; int first[5] = { 4, 2, 3, 4, 1 }; int second[5] = { 1, 1, 5, 2, 2 }; int apartment2D[2][5] = { { 4, 2, 3, 4, 1 }, { 1, 1, 5, 2, 2 } }; } 4 2 3 4 1 1 1 5 2 2 순서로 저장된다. 배열 int apartment2D[2][5] = { { 4, 2, 3, 4, 1 }, { 1, 1, 5,..
[C++] 다중 포인터 (이중 포인터)
[C++] 다중 포인터 (이중 포인터)
2022.03.27다중 포인터 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 포인터를 사용 - 원본 데이터 접근 후 수정 void SetNumber(int* a) { *a = 1; } int main() { int a = 0; SetNumber(&a);//주소값을 넘긴다. cout