之前有人问我如何学好C++,所以,我把我个人的一些学习经验写在这里,希望对大家有用:
- C++是最难的语言。这个世界上最难的编程语言可能非C++莫属了。你千万不要以为写几天代码就可以学好C++,C++的学习曲线是相当BT的。C++是一门很自由的语言,自由到了有点BT和恐怖的地步。我甚至认为C++并不是一门成熟的编程语言,因为太容易犯错了。所以,你一定要在一开始就要有很小心谨慎的态度,并把C++当成一种难以训服的猛兽来看待。
- 多问“为什么要这样”的问题。学习C++一定要多问几个“为什么是这样”,“凭什么要这样”的问题。比如:很多人知道C++有拷贝构造函数和初始化列表,但你真的知道为什么要有拷贝构造函数?为什么要有初始化列表吗?为什么要有template,为什么要有RTTI,为什么不是别的呢?难道就是为了让一门语言变得Cool一些吗?完全不是这样的,C++中的任何一个feature都有些实实在在的原因,你一定要去了解为什么要把C++设计成这样的原因,你才能学好C++。有空看看《C++演化和设计》一书。
- 整理了下C++基础学习目录:
- 第01章C++语言基础 2
数据类型-引用类型 2
const修饰 3
内联函数 3
重载 3
命名空间 4
New和delete运算符 4
第02章 面向对象程序设计 5
对象 5
类 5
实例 5
消息 6
抽象 6
封装 6
继承 7
多态 7
第03章 类和对象 7
构造函数 7
析构函数 8
对象-定义 8
对象成员变量 9
内部类 9
自引用对象指针this 9
友元 9
运算符重载 10
第05章 继承性 11
继承性 11
基类与派生类的关系 11
三种继承存取权限关系 12
赋值兼容规则 12
多重继承-二义性问题 12
多重继承-虚基类 12
第06章 运行时的多态性和抽象类 13
多态性 13
滞后联编和运行时多态性 13
虚函数 13
虚析构函数 14
纯虚函数和抽象类 14
第07章 模板 15
模板 15
类模板 15
函数模板 17
第08章 异常处理 18
传统异常处理方法 18
C++异常处理方法 18
第09章 I/O流类库 19
流 19
流类 19
流库 19
C++流库结构 20
Ios类层次 21
ios虚基类 21
istream类 21
istream为什么可直接使用“cin>>” 进行输入? 23
ostream类 23
第10章 标准模板库 27
STL 27
容器类 28
迭代器 30
算法库 30
更新几个观点:
- 1)除了学习C++基础知识点,如上面列出的知识点。
- 2)学习C++面向对象高级开发。
- 3)学习STL库,泛型编程,以及STL源码解析。
- 4)学习C++内存管理
- 5)学习C++网络编程
- 6)学习C++设计模式
- 7)学习C++算法原理以及实践
- 8)学习数据库原理以及开发等等
目前开发过几个项目,也有大量且比较完整的资料,希望能跟大家多交流,[email protected]。