분류 전체보기142 Effective C++ 항목 3: const를 자주 사용하자 const 변수const의 가장 큰 장점은 의미적인 제약을 소스 코드 수준에서 붙인다는 점과 컴파일러가 이 제약을 지켜준다는 것이다.데이터 멤버는 포인터 자체를 상수로, 혹인 포인터가 가리키는 데이터를 상수로 지정 가능하다.char c[] = "JJune";char* p = c; //비상수 포인터 & 데이터const char* p = c; //비상수 포인터 & 상수 데이터char* const p = c; //상수 포인터 & 비상수 데이터const char* const p = c; //상수 포인터 & 상수 데이터위를 보면 알겠지만 const가 *보다 왼쪽에 있으면 가르키는 대상(데이터)이 상수이고const가 *보다 오른쪽에 있으면 포인터 자체가 상수가 된다. 위의 말을 추가로 더 설명하자면v.. 2024. 10. 7. Unreal StaticClass() StaticClass()이 함수는 클래스의 UClass 객체를 반환하는 정적 메서드로 주어진 클래스에 대한 정보를 저장한다.특정 클래스의 인스턴스를 생성할 때 또는 해당 클래스와 관련된 작업을 수행할 때 유용하게 사용된다.더보기정적 메서드: 객체 인스턴스와 관련 없이 클래스 자체에 속하는 메서드이다.객체를 생성하지 않고 호출이 가능하며 보통 클래스의 공통 기능이나 유틸리티 기능을 제공하는데 사용된다.더보기UclassUClass는 UE에서 클래스를 정의하고 관리하는 시스템.모든 UObject 파생 클래스(Actor, Component)는 UClass를 통해 인스턴스를 생성하고 조작이 가능하다. 또한 클래스의 구조, 속성, 메서드, 가상 함수, 에디터 노출 등 다양한 메타 정보를 저장한다. StaticCla.. 2024. 10. 3. Effective C++ 항목 2: #define보단 const, inline을 사용하자. #define의 문제점#define은 매크로 상수나 매크로 함수를 정의하는데 사용된다. 이때 발생하는 문제점은 다음과 같다. #define으로 만들어진 매크로 상수는 기호식 이름(symbolic name)으로 보이지만 컴파일러에겐 보이지 않는다.#define A_define 16.3#define은 컴파일러가 처리하기 전에 전처리기가 작동해서 코드 내에 있는 모든 A_define를 16.3으로 바꾸는 텍스트 치환을 수행한다.즉, 컴파일러는 매크로 자체에 대해 아무 정보를 갖지 않고 치환된 값을 기준으로 컴파일한다. 그래서 생기는 문제점이 뭔가?이렇게 정의되어 있다면 A에 16.3이라는 값을 매크로로 할당한 것이다.그럼 이 값이 어떤 타입(int, double, float)인지 알 수 없다. 컴파일러는 매크.. 2024. 9. 30. Unreal BehaviorTree RequestExecution(), StopTree() Player를 쫓아오는 AI를 만들 때 일정 거리에 도달하면 근처에서 대치하는 상황을 만들고 싶었다. 이때 이상한 현상이 발생했다.코드는 다음과 같다.void UBTD_IsWithInIdealRange::TickNode(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds){ CalculateRawConditionValue(OwnerComp, NodeMemory); if(!TickFlag){ UE_LOG(LogTemp, Display, TEXT("Tick Node!!")); TickFlag = true; }}bool UBTD_IsWithInIdealRange::CalculateRawCon.. 2024. 9. 24. 이전 1 ··· 3 4 5 6 7 8 9 ··· 36 다음