프로그래밍 공부

프로그래밍 700

카테고리 설명
  • BP를 사용해서 CubeObject를 생성하기. BP를 사용해서 Cube를 생성해보자. 좌측의 엑터창을 사용해서 Cube를 생성해도 무방하지만, 일단 우리는 블루프린트를 적용 가능한 엑터를 생성하는것 이 목표이기 때문에, 블루프린트를 이용해서 Cube를 만들 것 이다. 블루프린트 클래스를 생성한다. 만들어야 하는것 은 엑터 임으로, 엑터로 생성한다. 컴포넌트 추가 에서 Cube를 생성한다. 생성하게 되면, 지정된 구 대신 Cube가 생성된다. 중앙에 있는 구체는 엑터가 생성되면 해당 위치에 생성된다고 알려주는 것 임으로, 무시해도 무방하다. 어차피 컴포넌트가 추가되면 볼 일이 없다. 같은 느낌으로 TextRender또한 생성해서 Cube에 드래그 하여 상속시켜준다. 위와같이 텍스트를 배치하면 성공. 텍스..

  • C++에서 다형성을 지원하기 위한 메커니즘 중 하나로, 가상함수들의 주소를 담고있는 테이블이다. 가상함수 테이블의 역할 다형성을 지원하기 위해 가상함수의 주소를 저장한다. 함수의 주소를 저장한다는 점에서 함수테이블과 동작방식이 비슷하다. 객체의 실제 타입에 따라 올바른 함수를 호출하는 데 사용한다. 우선, 가상함수 테이블에 대해 더 자세히 알려면, 가상함수부터 알아야 한다. 가상함수 virtual 키워드가 붙은 멤버 함수로, 파생클레이스에서 재정의할 수 있다. 가상함수를 선언하는 순간. 해당 클래스는 가상 함수 테이블을 가질 가능성이 생긴다. 만약, 완전가상인 =0 또는 null선언을 해주면 무조건 가상 함수 테이블을 가진다. 가상함수 테이블 클래스에 가상 함수가 하나라도 존재한다면, 해당 클래스의 객체..

  • C++에서 런탕미에 객체의 타입 정보를 확인하는 메커니즘을 말한다. RTTI는 C++의 다형성(polymorphism)을 활용하고 객체의 동적인 특성을 다룰 때 유용하게 사용된다. 사용예시 객체의 실제 타입을 런타임때 확인하는데 사용된다. 다형성을 지원하며, 가상 함수와 함께 사용하여 동적 바인딩 기능을 가능케 한다. typeid 연산자를 사용하여 객체타입의 정보를 얻을 수 있다. typeid typeid 연산자는 객체의 타입정보를 반환한다. #include // 객체 또는 포인터에 대해 typeid 연산자 사용 const std::type_info& typeInfo = typeid(obj); 사용 부분 dynamic_cast dynamic_cast는 RTTI와 함께 사용되며, 안전한 다운캐스팅을 지원한..

  • C++에서는 4가지 형변환 연산자를 지원한다. static_cast 정적캐스트로, 보통 정적 이라 하면 언어에서 컴파일시에~ 동적이라면 런타임시에~ 를 의미함으로, static_cast연산자를 통해 형변환 하면 컴파일 타임에 형변환이 가능한지 검사한다. 컴파일 타임에 수행되는 가장 일반적인 형변환 연산자로, 안전한 형변환이 보장되는 상황에서 사용한다. 기본적인 형변환에서 사용되며, 명시적인 변환을 나타내는 특징이 있다. 장점 명시적이고 간단한 형변환 방법이다. 컴파일러에서 경고를 제공할 수 있다. 단점 런타임 유효성 검사가 없어서, 일부오류가 터졌을때 찾느라 머리도 같이 터질 수 있다. float floatNumber = 3.14f; int intNumber = static_cast(floatNumber..

  • 언리얼에서 사용할 수 있는 스트링 처리는 FName, FText, FString으로 나누고있다. 각 문자열, 로컬라이징 및 텍스트 처리, 이름관리 를 위한 클래스이다. FName 콘텐츠 브라우저에서 새 에셋 이름을 지을 때, 다이나믹 머티리얼 인스턴스의 파라미터를 변경할 때, 스켈레탈 메시에서 본에 접근할 대. 모두 FName을 사용한다. FName은 Static데이터 마냥, 문자열 사용에 있어서 재선언을 막아주는 효과가 있는데, 주어진 문자열이 재사용된다고 하더라도, 데이터 테이블에는 한번만 저장된다. FName에는 다음과 같은 특징이 있다. FName은 대소문자를 구분하지 않는다. 대문자, 소문자를 구분없이 탐색, 저장한다. 변경할 수 없다. ( 정적인 데이터 이기 때문에 ) 조작할 수 없다. ( 선..

  • 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때..