英文来自网络,侵删
给自己mark一下,并分享给有需要的人:
----
Hi Elena,
你好,艾琳那(提问者好像是在stack overflow 提问的)
here is what I found. Hope it gives you a head start ;-)
这是我的答案。希望能给你一个好的开始
Core C++ for Qt Developers Curriculum Block
Qt开发者的核心C++课程
Types, Declarations and Definitions
类型、声明和定义
Know how to use basic types and cast between them
知道如何使用基本类型以及他们之间的转换
Understand how to use const and mutable
理解如何使用const和muable关键字
Understand the different scopes that identifiers have
理解不同作用域的标识符的意义
Understand how to define functions and use argument lists
理解如何定义函数和使用参数列表
Understand how to define and use references
理解如何定义和使用引用类型
Understand how to manage object creation and destruction
理解如何管理对象的创建和销毁
Know how to define and use namespaces
理解如何定义和使用命名空间
Understand how to separate code into header files and source files
理解如何将代码分离到头文件(.h)和源文件(.cpp)
Classes
类
Understand member accessibility
理解成员的可访问性(private,protected,public)
Know constructors, how they are used and member initialization
知道构造函数,如何使用和成员初始化
Know how to write const methods const-correct classes
知道如何写一个常量方法和常量正确的类
Understand static methods and static member initialization
理解静态方法和静态成员初始化
Understand how objects are copied and assigned
理解对象是如何拷贝和赋值
Inheritance and Polymorphism
继承和多态
Know how constructors and destructors are used in derived classes
知道如何在派生类中使用构造函数和析构函数
Understand how to use base class pointers
理解如何使用父类指针
Non-public derivation of classes
非公共派生类
Know virtual functions, how to define and use them
知道虚函数以及如何定义和使用虚函数
Understand why virtual destructors are needed
明白为什么需要虚析构函数
Know how to use abstract classes and implement pure virtual functions
知道如何使用抽象类和实现纯虚函数
Understand how functions and operators can be overloaded, overridden and hidden in derived classes
了解函数和操作符如何被重载,和隐藏在派生类中的重写 (区分 重载和重写的不同)
Understand issues that come up from multiple inheritance
了解多重继承带来的问题
Miscellaneous Topics
其他主题
Understand how to use templates and Qt containers
理解如何使用模板和Qt容器
Understand operator overloading
了解操作符重载
Know the explicit keyword and how conversion constructors are used
知道explicit 关键字和 如何使用构造函数转换的方式 (隐式转换)
Core C++ for Qt Developers - References to Related Learning Materials
QT 开发人员需要掌握的C++核心知识的 相关学习材料
The sections below lists learning materials related to the Core C++ for Qt Developers curriculum block. Please note that only reading books or taking classes is not sufficient enough to gain required knowledge.You have to work on Qt development projects in order to gain practical experience in addition to theory.
以下各节列出如何学习Qt开发者需要具备的C++知识的相关学习材料。请注意, 只有读书或上课不足以获得所需的知识。你需要通过做Qt开发项目获得除了理论之外的实际开发经验。
Training
培训(个人觉得没有什么比较好的培训,除了官方的,但是的官方的代价太高,不太适合中国国情)
Books
书
There are several books about C++. Some of them refer to Qt, some are generic.The list below contains references to selected chapters and sections in books that cover the scope of this version of the curriculum. Please note that this is not 100% coverage.You might need other learning materials as well.
这里有好几本关于C++的书。有一些依赖Qt,还有一些是标准C++。下面的列表选中的章节和章节的引用都覆盖了本版本的课程的知识点。不是100%覆盖,你同样需要其他学习材料
1. C++ GUI Programming with Qt 4 (Appendix D: Introduction to C++ for Java and C# developers)
C++ GUI 编程 QT4 中的 章节:Introduction to C++ for Java and C# developers (在附录)
PS:
这本书强烈推荐,适合Qt入门的人学习.唯一美中不足的是基于Qt 4 (现在已经5.8版本了),但是国内还是有很多企业用的4.8的版本。(电力,工控行业,建议可以4.8版本入门。其他行业酌情考虑)
2. An Introduction to Design Patterns in C++ with Qt 4, by Alan Ezust, Paul Ezust、
o Part I: Introduction to C++ and Qt 4
o Part III: C++ Language Reference
C++设计模式(QT):中Part I1 章节 Part III章节
3. Accelerated C++, by Andrew Koenig, Barbara E. Moo
4. Thinking in C++, vol 1 and vol 2, by Bruce Eckel. See also the "Online resources" below.
5. Effective C++ series by by Scott Meyers.
Online resources
网络资源
1. Learning C++ reference list on the Qt Developer Network wiki.
http://wiki.qt.io/QtWhitepaper
2. C++ Reference
http://www.cplusplus.com/reference/
3. C++ Annotations
http://www.icce.rug.nl/documents/cplusplus/
4. Thinking in C++, 2nd Edition, by Bruce Eckel (electronic book)
自己网上搜一下,我就不贴出来了。
Prerequisites
先决条件:
There are no formal prerequisites to start with Qt Essentials. You can start by either following the curriculum or by simply proceeding directly to the exam if you feel knowledgeable and experienced enough in Qt.As a rule of thumb, the scope of this curriculum block corresponds to 3 years of C++ development experience plus some knowledge of Qt.
没有正式的先决条件说你一定要掌握哪些Q要点。如果你觉得 qt 的知识渊博和经验丰富, 你可以从课程开始, 或者干脆直接参加考试。一般来说,上面的覆盖的课程对应了3年C++开发经验和一些Qt知识