강의 29분 45~50초 부분
455
작성한 질문수 31
typedef를 사용해서 Iterator<T> iterator를 선언하는 부분에서 제대로 이해하기 어려운것 같아서 질문남깁니다.
typedef를 선언했을때,
main함수의 for문안에서 Vector<int>::iterator 했을때 자동적으로 iterator<T> 타입을 이용한다는 부분이 와닿지 않습니다. 좀더 구체적인 설명 조금 부탁드려도 될까요?
왜 저것을 사용했을때 Vector<int>::iterator 가 문법적으로 문제가 없는지 잘 모르겠습니다.
클래스명::을 사용하는 문법은 어떤 상황에서 사용하는건가요?
std:: 라는것처럼 네임스페이스 부분으로 이해한 경우는 있는데, 클래스명으로 ::으로 했을때는 어떤 경우에서 사용하는지 헷갈리는것 같습니다.
추가 보충설명 해주시면 정말 감사하겠습니다.
답변 4
3
:: 은 그냥 [~~에 있는 정도]로 해석하시면 됩니다.
vector<int>::iterator는 vector<int> 클래스에 있는 iterator 타입을 사용하겠다,
라는 의미인데 이전에 우리가 typedef Iterator<T> iterator;
를 통해 앞으로 Iterator<T>를 iterator라는 이름으로 부르기로 했습니다.
따라서 마법처럼 Iterator<T> 타입이 되는거죠!
심지어 vector<int>로 정하는 순간
T는 int로 고정되니 Iterator<int>가 될겁니다.
0
루카스님께서 말씀하신
":: 은 그냥 [~~에 있는 정도]로 해석하시면 됩니다"
라는 내용은!
간단하게 생각하면 이전에 클래스 내부에 함수를 선언하고 클래스 외부에 함수를 정의할때를 생각하시면 됩니다.
(Player 클래스 내부)
void function(const int num);
(클래스 외부)
void Player::function (const int num)
{
...
}
"Player 클래스 안에 function이 있다" 라고 해석한 것 처럼
저희가 Vector 클래스에 iterator을 만들었으니
"Vector클래스 안에 iterator이 있다" 라고 해석 하면 되는거죠!
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
0
541
1
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
0
442
1
strcpy() 구현 관련 질문
0
513
1
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
0
452
1
클래스 타입의 포인터 질문합니다
0
546
1
입력값을 enum 값에 넣어주는거 이제 막혔나요?
0
497
1
템플릿 특수화 관련 질문
0
384
1
포인터 관련 질문합니다!
0
263
1
Unable to start assembler. Check your settings.
0
830
2
cpu선택
0
539
1
포인터 질문이 있습니다
0
322
1
20:35 에서 구조체 크기에 대한 질문입니다!
0
584
1
iterator 삭제관련
0
406
1
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
0
310
1
15 분 45초 대 질문
0
308
0
스택 프레임 질문합니다!
2
306
1
오른값 참조 in 게임
0
384
0
동적할당 질문이 있습니다
0
449
1
안녕하세요 메모리에 대해 질문드립니다.
0
304
1
함수객체 의 매개변수
0
358
1
복사생성자
0
434
1
main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요
0
420
1
포인터 실습 강의를 보고 궁금한게 있습니다.
0
354
1
스택 오버플로우
2
790
1





