해결된 질문
작성
·
355
0
안녕하세요, 유익한 강의 감사합니다.
질문에 필요한 내용으로 특정 영역을 발췌해서 올립니다.
이번 질문은 템플릿의 사용이 어디까지 이어지는지입니다.
Q1. @QQQQQQ
주석이하의 내용의 경우
연산자 함수 스택 프레임에서 Iterator객체를 생성하였습니다. 이 때 T는 어떻게 결정이 되는건가요?
한 번 T가 결정되면 해당 클래스 설계도를 사용하는 메모리들은 T를 따로 정의하지 않아도 그대로 계승되는건가요?
template<typename T>
class Iterator
{
public:
Iterator& operator++()
{
_ptr++;
return *this;
}
Iterator operator++(int)
{
// @QQQQQQQQ
Iterator temp = *this;
_ptr++;
return temp;
}
public:
T* _ptr;
};
Q2. 강의 정말 열심히 공부하고 있고 얼마 안있으면 완강을 하게될 것 같습니다. 저는 백엔드 개발자를 지망하고 있고 그전에 프로그래밍 기초체력을 탄탄히 쌓기 위해 본 과정을 공부하게 되었습니다. 이후 루키스님의 자료구조/알고리즘까지 공부하고 코테는 c++로 준비할 생각인데요. 본 강의를 한 번 더 복습하는게 나을까요? 아니면 자료구조강의로 바로 넘아가도 괜찮을까요? 개인적으로 전체 내용에 대해서 80~85% 정도이해한 것 같습니다.
답변 1
1
Q1) 네 맞습니다. 내부적으로 Iterator에서 넘어갈 경우 Iterator<T>가 생략된 것입니다.
Q2) 사람마다 학습 방법이 다르지만, 저라면 바로 자료구조/알고리즘으로 넘어갑니다.
특히 구종만씨의 2권짜리 알고리즘 책이 전설이니 그것으로 시작하시면 C++ 시너지도 나고 좋습니다.
(프로그래밍 대회에서 배우는 알고리즘 문제 풀이 전략 aka 종만북)
C++은 더 이상 문법을 학습하기 보단 지금까지 기초 내용을 연습하는게 더 중요합니다.
그럼에도 책을 본다면 필독서 2권 (Effective C++, Modern Effective C++)을 정독하시고
레퍼런스로 삼을 두꺼운 책 하나 [전문가를 위한 C++ 빨간책]를 구매해둬 틈틈히
랜덤하게 20페이지씩 훑어보면 도움이 됩니다.
알고리즘이야 워낙 자료가 많으니 그 중 뭘 하더라도 상관없습니다.
친절한 답변 다시 한번 감사드립니다.
말씀하신 "기초 내용을 연습한다"는 것은 기존 강의의 복습을 말씀하시는건가요?
프로그래밍의 기초 연습은 어떤 내용을 말씀하시는지 조언을 구하고 싶습니다.
그나저나 본 강의 이후에 effective c++을 공부할 수 있는거군요...! 어렵게만 느껴졌던 책이었는데...
기초란 말 그대로 포인터, 참조, 클래스 설계 등
기본적인 문법을 아주 자연스럽게 사용하는 연습을 하는겁니다.
물론 알고리즘은 별개로 새로운 내용이 가득하고
구현 문제는 코딩 감을 잡는데 도움을 주겠지만
기본적으로 고급 자료구조 개념을 모르면 못푸는 문제도 많으니
수학을 공부한다는 느낌으로 아주 시간을 오래 잡고 공부를 해야 합니다.
Effective 시리즈는 딱 취준생->신입 프로그래머 수준에서
어느 회사나 입사하자마자 스터디를 시키는 책입니다.
처음엔 어렵지만 4~5번 보다 보면 신기하게 점점 잘 이해가 갑니다.
코드가 정상적으로 돌아가는걸 보면서 내부적으로는 계속 계승이 되겠구나 가설을 세웠었는데 맞아서 다행입니다!! 루키스님이 강의 초반에 설명하신 가설을 세우고 넘어가도 나중에 맞거나 틀리거나 확인할 기회가 생긴다고 해주신 말씀이 체감되는 것 같습니다 ㅎㅎ
주신 조언도 감사드립니다!
본 강의 잘 마치고 자료구조 강의로도 큰 도움받게 될 것 같아 벌써부터 기대가됩니다.
추가적으로 [자료구조/알고리즘 강의 -> 종만북] 순서로 공부하면 될까요?
또 개인적으로 추천해주시는 c++문법 책이 있으신지 궁금합니다. 이후에는 Java를 깊게 공부하겠지만 c++도 계속 사이드로 공부하고싶은 생각이 들었습니다!