Tôi sẽ không kiềm chế sử dụng Qt chỉ vì những lý do đó. Bạn không bắt buộc phải sử dụng tất cả các lớp tiện ích của Qt; đối với những cái thay thế STL, nhiều nhất bạn sẽ bị buộc phải sử dụng QString và, có thể, QStringList. Ngoài ra, thường có nhiều chương trình hơn GUI. Bạn luôn có thể sử dụng C ++ chung cho phần còn lại của chương trình và sử dụng Qt chỉ cho GUI.
Theo tôi, làm việc với STL là tìm hiểu thêm về cấu trúc dữ liệu cơ bản được sử dụng và mức độ phức tạp của chúng, và do đó, tại thời điểm nào bạn nên sử dụng mỗi container. Và khi nói đến lập trình C ++, điều đặc biệt là biết cách sử dụng tiêu đề <Thuật toán> rất cần thiết, cũng hoạt động trên các thùng chứa của Qt, vì chúng tương thích với STL.
Tôi không thấy nhiều tác hại khi sử dụng tất cả các tiện ích mở rộng mà Qt cung cấp, miễn là bạn biết (hoặc ít nhất có một ý tưởng chung về) cách chúng được triển khai trong nội bộ. Hãy chắc chắn rằng bạn biết rằng những thứ như Q_OB DỰ ÁN, TÍN HIỆU (), SLOT (), foreach (), không phải là phép thuật, mà là các macro mở rộng thành các câu lệnh C ++ hợp lệ. Ví dụ, không quá phức tạp để hiểu làm thế nào các lớp được chia sẻ ngầm và các mối quan hệ cha-con làm cho Qt cảm thấy giống Java hơn được triển khai. Bạn luôn có thể thử tạo lại một số chức năng trong một dự án riêng biệt để xem liệu bạn có thể làm điều đó với C ++ chung hay không, và sau đó không cảm thấy tệ khi sử dụng chúng trong Qt.
Ngoài ra, hãy xem các thư viện Boost. Chúng cung cấp các tiện ích bổ sung mà thư viện C ++ tiêu chuẩn không có, và là một cách thực sự tốt để đến gần hơn với C ++ chung, vì về cơ bản chúng tuân theo các quy ước tương tự như C ++ chung. Một số thư viện có các lớp templated khá phức tạp và chỉ đơn giản là cố gắng hiểu cách chúng hoạt động, bản thân nó là một nghiên cứu tốt trong C ++. Boost có nhiều tiện ích không thể tìm thấy trong Qt và các tiện ích khác triển khai các khái niệm tương tự hoặc tương tự như một số lớp của Qt và có thể được sử dụng thay thế chúng.
Nếu bạn tham gia vào thị trường việc làm làm việc với C ++, rất có thể bạn sẽ làm việc với Qt hoặc một khung công tác khác, tương tự như nó, sẽ có các lớp tiện ích riêng cố gắng làm cho C ++ đơn giản hơn.