그런 이유로 Qt를 사용하지 않는 것이 좋습니다. Qt의 모든 유틸리티 클래스를 사용할 필요는 없습니다. STL을 대체하는 제품의 경우 QString 및 QStringList를 사용해야합니다. 또한 일반적으로 GUI보다 훨씬 많은 프로그램이 있습니다. 프로그램의 나머지 부분에는 항상 일반 C ++ 만 사용할 수 있으며 GUI에는 Qt를 사용할 수 있습니다.
제 생각에 STL을 사용하는 것은 기본 데이터 구조가 사용되는 것과 그 복잡성을 이해하고 결과적으로 각 컨테이너를 사용해야하는 시간을 이해하는 것입니다. 그리고 C ++ 프로그래밍과 관련하여 특히 매우 중요한 <algorithm> 헤더를 사용하는 방법을 알아야합니다.이 헤더는 STL과 호환되므로 Qt의 컨테이너에서도 작동해야합니다.
내부적으로 구현 된 방법을 알고 있거나 최소한 일반적인 아이디어를 가지고있는 한 Qt가 제공하는 모든 확장을 사용하면 크게 해를 끼치 지 않습니다. Q_OBJECT, SIGNAL (), SLOT (), foreach ()와 같은 것은 마술이 아니라 유효한 C ++ 문으로 확장되는 매크로라는 것을 알고 있어야합니다. 예를 들어, Qt를보다 Java와 같은 느낌으로 만드는 암시 적으로 공유 된 클래스와 부모-자식 관계가 어떻게 구현되는지 이해하는 것이 그렇게 복잡한 것은 아닙니다. 일반 C ++로 수행 할 수 있는지 확인하고 Qt에서 사용하는 것이 나쁘지 않은지 확인하기 위해 항상 별도의 프로젝트에서 일부 기능을 다시 만들 수 있습니다.
또한 Boost 라이브러리를 살펴보십시오. 표준 C ++ 라이브러리가 제공하지 않는 추가 유틸리티를 제공하며, 일반 C ++과 동일한 규칙을 따르기 때문에 일반 C ++에 조금 더 가까워지는 좋은 방법입니다. 일부 라이브러리는 상당히 복잡한 템플릿 클래스를 가지고 있으며 그 작동 방식을 이해하려고 시도하는 것 자체가 C ++에 대한 훌륭한 연구입니다. Boost에는 Qt에서 찾을 수없는 많은 유틸리티가 있으며 Qt의 클래스와 동일하거나 유사한 개념을 구현하고 대신 사용할 수있는 유틸리티가 있습니다.
C ++로 작업하는 구직 시장을 강타한다면 Qt 또는 다른 프레임 워크와 마찬가지로 C ++을 더 단순하게 만드는 자체 유틸리티 클래스를 갖게 될 것입니다.