Unreal 강의(33)
-
29일차 (1/22)
Delete 특정 오퍼레이터 (예를 들면 =)등을 내가 만드려는 클래스에서 사용하고싶지 않을 때가 있다. 예전엔 클래스에 private로 그 오퍼레이터를 명시해 주는 식으로 사용했으나 더 세련된 방식이 나왔다. private를 이용한 방법은 클래스 내부에서는 사용이 가능한 등 완전히 막을수있는 방법도 아니었다. public: void operator=(const Test& _Other) = delete; 위와 같은 식으로 delete를 이용하면 문법적으로 완전히 막아버릴 수 있다. RValue 지역변수로 생성되었는데 동적할당을 했을때 지역변수는 함수가 끝나면 파괴되지만 힙 영역에 동적할당된 것은 사라지지않는다. void operator=(Test&& _Other) noexcept { if (nullptr..
2024.01.22 -
28일차 (1/19)
static 멤버 함수 스테틱 멤버 함수는 객체 없이 호출이 가능하다. 하지만 this가 없어서 안에서 this를 쓸 수 없다. 그래서 일반적인 맴버변수를 사용할 수 없다. 에러의 종류 컴파일 에러 : 실행부터 안되는 에러 런타임 에러 : 실행까지 된 이후에 터지는 에러 !!에러 ppt 참고 에러 확인법 1. 값 확인법 빌드 중에 상단 메뉴 - 디버그 - 창 - 조사식 메모리 읽을 수 없음이라는 값을 가진 변수는 사용하면 안된다. 인코딩 char에서 문자는 숫자 하나와 매칭되서 사용된다. 이런 방법을 인코딩이라 한다. 문자를 표현하기 위한 바이트들이 다르기 때문에 다양한 인코딩 방식이 있다. 문자 인코딩 방식은 거의 상식 수준이라 봐야한다. 0~255 !!String EX 소스 참고 문자를 7비트로 25..
2024.01.19 -
25일차 (1/16)
엔진구조 노드는 힙 업캐스팅은 무엇이 들어올지 모르기때문에 부모 클래스의 참조값을 넣고 자식 클래스도 부모클래스의 참조값을 통해 연결시킬때 사용한다. 엔진 기능의 포인터는 외부에서 사용하게 하면 안된다. defalut parameter !!int fuction 코드 아무값도 없이 설정하면 인자에 설정한 값이 들어각고 값을 넣어서 호출하면 넣은 값이 들어가는 문법이다. 선언쪽에만 디폴트 인자를 넣어줄 수 있고 디폴트 인자는 가장 우측부터 채워나가야 한다. static member (ststic 자료형 변수명)형식으로 클래스안에 쓰는데 이런 변수가 있을거야라는 선언이어서 외부에서 (자료형 클래스명::변수명)식으로 명시해줘야한다. 그리고 public으로 만들면 다른 클래스에서도 쓸수있어서 보통 private로..
2024.01.16 -
24일차 (1/15)
통합관리를 위해서 자료구조는 하나여야된다. list에서 nullptr이 나올 경우 심각한 오류라 어설트를 거는 것이 좋다. 최적화 및 프리 컴파일 프레임에서 많은 부분을 차지하는 것을 조금 줄이는게 사소한 것을 많이 줄이는 것보다 효율이 좋다. 삭제할 것이 생기면 중간 삭제를 하지않고 업데이트 랜더링이 끝나고 마지막에 삭제한다. 리팩토링 기존의 기능은 그대로 유지하되 가시성이나 편의성이 좋게 구조를 바꾸는 것이다.
2024.01.15 -
23일차 (1/12)
재귀함수 어떤 함수가 자신과 완전히 동일한 함수를 내부에서 다시 실행하는 것을 재귀함수라고 부른다. 그래서 그냥 사용하면 자기자신을 계속 호출하면서 스택 오버플로우가 터진다. 종료되는 시점을 정해주고 return을 시켜야한다. Map map은 와 같이 값을 2개 받는다. 각각 를 맡는다. map은 자동으로 오름차순 정렬이 된다. (작은 수 -> 큰 수로 정렬) map은 자료가 무작위일 때 효율을 발휘한다. 이미 정렬된 상태로 자료가 들어간다면 대부분의 자료구조가 map보다 빠르다. insert() map에 자료를 추가하는 방법은 보통 4가지 정도가 사용한다. 첫번째는 Pair로 하는 방법이다. NewMap.insert(std::pair(5, 12)); 두번째는 make_pair로 하는 방법이다. NewM..
2024.01.12 -
21일차 (1/10)
Vector Vector는 시퀸스 컨테이너이면서 배열기반 메모리 구조를 가졌다. Vector는 안에 아무것도 없다라는 표현이 가능하다. Vector에는 push_back이라는 함수가 있는데 그 역할은 우선 메모리를 할당하고 그 안에 데이터를 넣는다. 새로운 데이터를 추가하면 원래의 데이터를 복사해 확장된 배열에 넣어주고 원래의 데이터를 삭제한 후 새로운 데이터를 추가한 배열을 추가한다. 이 push_back의 가장 큰 특징은 데이터를 추가할 때 기존 크기보다 더 크게 확장해서 사용한다는 것이다. 여기서 데이터가 할당되어있는 곳을 size라고 부르고 Vector가 사용하고 있는 총괄 크기는 capacity라고 부른다. new와 delete는 C++에서 가장 부하가 심한 연산이다. 그래서 최대한 피하려고한다..
2024.01.10