분류 전체보기
[C++] 타입 변환 1: 값, 타입 변환 / 암시적, 명시적 변환
[C++] 타입 변환 1: 값, 타입 변환 / 암시적, 명시적 변환
2022.04.08타입 변환 1: 값, 타입 변환 / 암시적, 명시적 변환 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 타입 변환 유형 (비트열 재구성 여부) 1. 값 타입 변환 - 특징) 의미를 유지하기 위해서, 원본 객체와 다른 비트열 재구성 int a = 123456789; // 2의 보수 float b = (float)a; // 부동소수점(지수 + 유효숫자) cout
[C++] 동적 할당: new, delete
[C++] 동적 할당: new, delete
2022.04.07동적 할당: new, delete 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! malloc / free vs. new / delete - malloc / free 함수! - new / delete는 연산자(operator) C++에 추가됨 malloc/free vs new/delete - 사용 편의성: new/delete 승! - 타입에 상관없이 특정한 크기의 메모리 영역을 할당 받으려면? malloc/free 승! 그런데 둘의 가장 가장 근본적인 중요한 차이는 따로 있음! new/delete는 (생성타입이 클래스일 경우) 생성자/소멸..
[C++] 동적 할당: malloc, free, void*, double free, Use-After-Free
[C++] 동적 할당: malloc, free, void*, double free, Use-After-Free
2022.04.07동적 할당 1 (malloc, free) 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 메모리 구조 복습 코드 영역 실행할 코드가 저장되는 영역 데이터 영역 전역(global)/정적(static) 변수 스택 영역 지역 변수/매개 변수 힙 영역 동적 할당 문제 상황 문제 상황 - MM)RPG 동접 1명~5만명, 몬스터 1마리~500만마리 - 몬스터 생성 이벤트 -> 5분 동안 몬스터가 10배 많이 나옴 스택 영역 - 함수가 끝나면 같이 정리되는 불안정한 메모리 - 잠시 함수에 매개변수 넘긴다거나 하는 용도로는 OK 메모리 영역 - 프로그램..
[C++] 객체지향 마무리
[C++] 객체지향 마무리
2022.04.06객체지향 마무리 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! struct vs. class - C++에서는 struct나 class나 종이 한 장 차이다. - struct는 기본 접근 지정자가 public이고, class는 private이다. - 왜 이렇게 했을까? C++은 C언어에서 파생되어 발전했기 때문에, 호환성을 지키기 위함. struct는 그냥 구조체 (데이터 묶음)을 표현하는 용도 class는 객체 지향 프로그래밍의 특징 나타내는 용도 struct TestStruct { int _a; }; class TestClass { i..
[C++] 오버로딩과 오버라이딩의 차이
[C++] 오버로딩과 오버라이딩의 차이
2022.04.06오버로딩과 오버라이딩의 차이 오버 로딩과 오버라이딩의 차이 함수 오버로딩(Overloading)과 오버라이딩(Overriding)은 객체 지향 프로그래밍에서 중요한 개념이다. 함수 오버로딩(Overloading)은 하나의 클래스 내에서 같은 이름을 가진 함수를 여러 개 정의하는 것을 의미한다. 이때 함수의 매개변수의 수나 타입, 반환값의 타입 등을 다르게 정의하여 사용합니다. 이렇게 정의된 여러 개의 함수 중에서 호출 시 전달된 인자와 가장 일치하는 함수가 호출된다. 예를 들어, C++에서 정수형 변수 두 개를 더하는 함수와 실수형 변수 두 개를 더하는 함수를 같은 이름으로 정의할 수 있다. 호출 시 전달된 인자의 타입에 따라 적절한 함수가 호출된다. 반면에 오버라이딩(Overriding)은 상위 클래스..
[C++] 연산자의 오버로딩 (Operator Overloading), 오버로딩 vs 오버라이딩
[C++] 연산자의 오버로딩 (Operator Overloading), 오버로딩 vs 오버라이딩
2022.04.05연사자의 오버로딩 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 목차 연산자 연산자 vs 함수 연산자는 피연산자의 갯수/타입이 고정되어 있다. 연산자 오버로딩 일단 [연산자 함수]를 정의해야 한다. 함수도 멤버함수 vs 전역함수가 존재하는것처럼, 연산자 함수도 두가지 방식으로 만들 수 있다. 멤버 연산자 함수 version 전역 연산자 함수 version 더보기 위의 상황에서는 연산을 할 수 없다. 하지만, 연산자 오버로딩을 하면 Position pos3 = pos + pos2 연산을 할 수 있다. #include using namesp..
[C++] 초기화 리스트
[C++] 초기화 리스트
2022.04.05초기화 리스트 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 초기화를 하는 이유는? - 버그 예방에 중요하다. - 포인터 등 주소값이 연루되어 있을 경우, 유의해야 한다. #include using namespace std; class Knight{ public: int _hp; // 쓰레기 값 }; int main(){ Knight k; cout
[건축] 외단열공법 (드라이비트)
[건축] 외단열공법 (드라이비트)
2022.04.05건물 외벽에 단열하는 공법 Exterior Insulation Finishing System (EIFS) 건축비 적게들고 시공이 용이하다
[C++] 다형성, 가상함수 테이블, 순수 가상함수, 추상 클래스
[C++] 다형성, 가상함수 테이블, 순수 가상함수, 추상 클래스
2022.04.05다형성 인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기! 바인딩(Binding) - 정적 바인딩, 동적 바인딩 바인딩(Binding) = 묶는다. 정적 바인딩(Static Binding) 컴파일 시점에 결정 동적 바인딩(Dynamic Binding) 실행 시점에 결정 일반 함수는 정적 바인딩을 사용한다. 동적 바인딩을 원한다면? 가상 함수(virtual function)를 사용한다. 가상 함수 테이블 ( vftable ) 그런데 실제 객체가 어떤 타입인지 어떻게 알고 알아서 가상함수를 호출해준걸까? - 가상 함수 테이블 (vftable) ...
[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) 상..