- “왜 이런 일이 발생하나요?”라는 질문을 더 많이 물어보세요 . C++를 배우다 보면 "이게 왜 이래?", "왜 이래야 하지?" 같은 질문을 더 많이 해야 합니다. 예를 들면 다음과 같습니다. 많은 사람들이 C++에 복사 생성자와 초기화 목록이 있다는 것을 알고 있지만 복사 생성자가 있는 이유를 정말로 알고 계십니까? 초기화 목록이 필요한 이유는 무엇입니까? 템플릿이 필요한 이유, RTTI가 필요한 이유, 다른 것이 필요한 이유는 무엇입니까? 단지 언어를 더 시원하게 만드는 것입니까? C++의 모든 기능에는 몇 가지 실제적인 이유가 있습니다. C++를 잘 배우기 위해서는 C++가 왜 이렇게 설계되었는지 이해해야 합니다. 시간이 나면 "C++ Evolution and Design"이라는 책을 읽어보세요.
- C++ 책을 많이 읽어보세요 .
- Java 언어와 비교해 보세요 . Java는 미숙한 언어인 C++에 대해 많은 조정, 사양 및 제한 사항을 적용했습니다. 따라서 Java와 C++를 비교하고 C++에서는 일부 작업을 수행할 수 있지만 Java에서는 수행할 수 없는 이유에 대해 생각해 보십시오. 예: Java 예외를 포착해야 합니다. 그렇지 않으면 컴파일이 실패합니다. Java가 연산자 오버로딩을 제공하지 않는 이유는 무엇입니까? Java가 다중 상속을 위한 인터페이스를 도입하는 이유는 무엇입니까? Java에는 C++와 같은 I/O 문자 스트림이 없는 이유는 무엇입니까? Java가 포인터를 지원하지 않는 이유는 무엇입니까? Java가 가비지 수집을 수행할 수 있는 이유는 무엇입니까? 등. Java는 객체 지향 설계의 많은 것을 구현합니다. Java를 배우면 C++를 사용하여 프로그래밍하는 방법을 배우는 데 도움이 됩니다.
- 객체지향 디자인 . 프로그래밍은 디자인 패턴에 집중될 수 없으며 디자인 패턴을 사용하여 분리되어야 합니다.
- 수업 도서관 학습 . MFC가 Windows API를 캡슐화하는 방식을 살펴보고, ACE가 어떻게 객체 지향적인지 살펴보고, Boost가 어떻게 객체 지향적인지 살펴보고, CPPUnit이 어떻게 설계되었는지 살펴보세요. Java의 JDK 에는 너무 많은 디자인 패턴이 있습니다. 참조할 수 있습니다 .
원문: C++ 언어를 잘 배우는 방법 - Chen Hao CoolShell