• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

7:29초 질문 드립니다.

22.05.19 23:25 작성 조회수 158

1

class Vertex

{

public List<Vertex> edges = new List<Vertex>();

}

 

Graph()

{

List<Vertex> edges = new List<Vertex>(6);

}

 

여기서 버텍스 클래스를 선언할 때 리스트를 new해주는데

왜 그래프함수 안에서 또 new를 해주는 걸까요

그리고 List<Vertex>이게 어떻게 가능한지 궁금합니다...

전의 강의를 봐도 이해가 잘 안 갑니다

 

 

답변 1

답변을 작성해보세요.

1

List<T> 타입에 대해 new List<T>(6)를 해주면
T를 담는 공간 6개를 할당해줍니다.

[T][T][T][T][T][T] 요런 식으로요.

문제는 T가 int같은 일반형이 아니라 class 타입이면,
기본값이 null이기 때문에
[null][null][null][null][null][null] 이런 형태로 있습니다.
따라서 new Vertex로 일일히 채워주고 있는 것입니다.
결과적으로 [Vertex주소값][Vertex주소값][Vertex주소값][Vertex주소값][Vertex주소값][Vertex주소값]
이 됩니다.