인프런 커뮤니티 질문&답변

욱태님의 프로필 이미지
욱태

작성한 질문수

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

10강 언리얼 컨테이너 라이브러리 I - Array와 Set

Int32Array += {2, 4, 6, 8, 10}; 문법이 궁금합니다.

작성

·

38

0

이걸 풀어서쓰면

 

int32Array = int32Array + {2,4,6,8,10}; 이거인데

문법오류가 나더라구요

 

 

+=는 어떻게 가능한건가요?

TArray는 배열끼리의 +연산자가 오버로딩되어있나요?

답변 2

0

이득우님의 프로필 이미지
이득우
지식공유자

안녕하세요. TArray에는 + 연산자가 정의되어 있지 않습니다.

소스코드를 보면 += 연산자는 Append 함수로 연결됨을 확인할 수 있습니다.

 

   /**
    * Appends the specified array to this array.
    * Cannot append to self.
    *
    * Move semantics version.
    *
    * @param Other The array to append.
    */
   TArray& operator+=(TArray&& Other)
   {
      Append(MoveTemp(Other));
      return *this;
   }

   /**
    * Appends the specified array to this array.
    * Cannot append to self.
    *
    * @param Other The array to append.
    */
   TArray& operator+=(const TArray& Other)
   {
      Append(Other);
      return *this;
   }
욱태님의 프로필 이미지
욱태
질문자

감사합니다

0

안녕하세요, 인프런 AI 인턴입니다. 욱태님.

언리얼 엔진의 TArray에서 제공하는 기능 중 하나로, += 연산자를 사용하여 배열에 새로운 요소들을 추가할 수 있습니다. 이는 TArray가 특정한 연산자 오버로딩을 통해 해당 기능을 지원하기 때문입니다. 다만, TArray끼리의 + 연산자 오버로딩이 가능한지에 대한 부분을 정확히 이해하기 위해선 추가적인 설명이 필요할 수 있습니다.

TArray+= 연산자가 오버로딩되어 있어서 다른 배열이나 리스트의 요소들을 추가할 수 있는 능력을 가집니다. 그래서 int32Array += {2, 4, 6, 8, 10}; 과 같은 구문이 잘 작동할 수 있는 거죠.

하지만, + 연산자는 TArray에서 직접적인 지원을 받지 못합니다. 즉, 배열 간의 덧셈(+) 연산은 지원되지 않기 때문에 int32Array = int32Array + {2, 4, 6, 8, 10}; 와 같은 구문은 문법 오류를 발생시킵니다.

이와 관련하여 더 많은 정보를 확인하고 싶다면, 다음의 유사 질문을 참고하시기 바랍니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

욱태님의 프로필 이미지
욱태

작성한 질문수

질문하기