Game !

전체 글 (86)

  1. 2022.05.06 [C++] interface

    interface 특정 기능을 구현할 것을 약속한 추상 형식 ( 다형성 의도를 명확하게 표현하기 위해 약속된 문법.. 이라고 생각할 수 있다 ) 특정 기능을 약속한 함수만 갖는다. 즉, 멤버 변수나 구체적으로 구현된 함수를 갖지 않는다. 모든 멤버 함수는 public 으로만 사용된다. 인터페이스로 사용한다 라고 가독성을 높이기 위해 인터페이스의 이름은 I 로 시작하도록 약속되어있다. interface 는 그 자체로 객체를 생성할 수 없고, 해당 인터페이스를 상속받아 무조건 재정의해서 사용하도록 의도한다. 기존에는 별도로 C++ 에서 문법을 제공하지 않았기 때문에 구조체 또는 클래스로 인터페이스를 만들어서 사용했다. #define interface class interface IAnimal { public..

  2. 2022.05.06 [C++] 함수 포인터

    함수 포인터 함수의 주소값을 저장하는 포인터 (함수의 시작 주소를 가리킨다) 함수 : 프로그램(exe 파일)이 실행될 때, 우리가 소스파일에 정의한 모든 함수가 메인 메모리(프로그램이 실행되면서 할당받은 메모리)에 올라간다. 이때. 우리가 작성한 함수이름은 함수의 시작 주소를 가리키는 포인터가 되는데, 이 포인터가 가리키는 주소가 변경되면 안되니까.. 포인터 상수로 함수의 시작 주소를 가리키게 된다. 이것을 함수 포인터 라고 부른다. 포인터 상수 : const ptr 포인터를 상수로 처리했다 는 의미이다. ---> "포인터를 상수로" 라고 생각하면 쉽다. cf. 상수 포인터 : ptr 상수를 가리키는 포인터 라는 의미이다. ---> "상수를 가리키는 포인터" 라고 생각하면 쉽다. ① 함수 포인터 선언 문..

  3. 2022.05.02 컴퓨터와 프로그램 메모리

    프로그램(exe) 메모리 프로그램을 실행하면 운영체제가 프로그램을 위한 메모리 공간을 할당한다. 우리가 하는 일은 모두 이 연속된 메모리 안에서 일어나게 된다. 프로그램의 메모리 공간은 네 개의 영역으로 나눠서 관리된다 ( 위의 이미지 ) 1. 코드 영역 : 프로그램에 작성된 코드가 저장된다. 2. 데이터 영역 : 프로그램의 글로벌 데이터들이 저장된다. 3. 힙 영역 ( 위에서부터 아래로 데이터를 쌓아간다. ) : 단, 너무 많은 동적할당을 할 경우.. 힙 데이터가 스택 영역을 침범하게 된다. 이것을 힙 오버플로우라고 한다. 4. 스택 영역 ( 아래에서 부터 위로 데이터를 쌓아간다. ) : 함수 데이터들이 차곡차곡 쌓이는 공간이다. 코드에서 각각의 함수를 호출할 때마다 지역 변수나 매개 변수, *반환 주..

  4. 2022.05.01 컴퓨터에서의 2의 보수

    1 2 3 4 5 6 7 int iNumber = 10; cout

  5. 2022.05.01 [UE] 언리얼 오브젝트와 UClass

    언리얼 오브젝트 언리얼 엔진의 관리를 받는 특수한 객체 언리얼 오브젝트가 아닌, 입력에 따라 결과 값만 받고싶은 C++ 클래스도 언리얼 프로젝트에서 전혀 문제없이 쓸 수 있다. 언리얼 엔진에서는 이러한 오브젝트를 구분하기 위해 클래스에 접두어를 사용한다. - 언리얼 오브젝트 (언리얼 엔진의 관리를 받는 객체) : U로 시작. ex) UObject, UMeshComponent... - 일반 C++ 오브젝트 ( C++ 네이티브 객체) : F로 시작. ex) FName, FVector... 언리얼 오브젝트를 생성하기 위한 최상단 기본 클래스는 UObject 이다. 언리얼 오브젝트는 언리얼 엔진이 자체적으로 만들어 제공하는 프레임웍이기 때문에 언리얼 헤더 툴 ( UHT ) 이라는 프로그램의 도움을 받아야 한다...

1 2 3 4 5 6 7 ··· 18