C++学习顺序指导

这篇博客提供了C++学习的顺序建议,从基础教程开始,结合数据结构实践,然后通过《More Effective C++》深入理解语言技巧和误区。进一步提升时,推荐阅读设计模式书籍、C++标准文档、STL源码剖析以及深入对象模型的书籍。作者强调通过实际应用如框架和技术(如CORBA、COM)来深入理解语言的精妙之处。
先列举些c++学习经典书籍
 C++:
> 《C++ Primer》(fouth edition):C++经典入门读物
> 《The C Programming  Language》:C++之父著作,比较晦涩高深,不推荐初学者阅读
> 《Effictive C++》:C++进阶读物
> 《More Effective C++》:C++进阶读物
> 《Inside C++ Object Model》:C++内核对象的探讨
> 《Modern C++  Design》:前卫的C++编程方法,天马行空的编程思想

Windows:
> 《Programming Windows》:win32 API编程的不二法门
> 《WINDOWS核心编程》:windows的内核编程操作,底层开发必学
> 《WINDOWS网络编程技术》:可视情况选择(是否对网络编程感兴趣)

VC:
> 《Programming Windows With  MFC》:微软官方指定的MFC读物(类似教材的东东)
> 《深入浅出MFC》:侯捷的探讨MFC本质的经典之作,不过对于应用者不推荐深入MFC,会用即可。


再转录一段别人的阅读心得

1.在你学习C++的过程中,你首先需要扎实的实践一本C++基础教程,这个教程不在深而在全.使你能够全览之.最好结合基本数据结构来练习.不要整天Hello World~~Hello MM的.

2.再下来你需要《(More)Effective C++》,它使你可以对C++也多了份思考,也了解到一些技巧和误区,不过,你需要同步实践,不然可能一时你并不能真正掌握这些技巧、避开误区.

3.提高,你需要:
  《Design Pattern》 :个人感觉,设计模式虽说是一种思维方式,具体实现上,只是对OOP语言的发掘和巧妙组合而已.而且这里组合是主要的,  特性是有限的,这本书中有
                                      几个模式没用虚特性的?
   C++ Standard Document :在你用它来做专项研究的时候,就会体会到什么才叫真正的全而深 (自然指在语法和语义的阐述上). 
  《STL源码剖析》 :没有深厚的功底,想来个闭门造车独挑STL源码是不可能的.不过,这本说也重在关键技术的讲解和引导罢了
  《Inside The C++ Object Model》:最具价值的一本书,没了它,C++永远是个迷,哪怕你浸淫之N载
  《Moden In C++ Design》 :这里的很多思路是你自己的思维很难接触到的

 4.浸淫一门语言本身的语法语义再久,你不一定能够深入它的精妙之处.
    你需要学习应用这门语言的实作品(技术),你可以研究一些FrameWork或是一些具体的技术 如CORBA、COM等.就个人而已,有心接触C++十个月左右,对于Virtual的认识有过几次较大的的改变.在《 Inside The C++ Object Model》中算第一次,在《COM本质论》中关于COM对二进制兼容布局需求而用虚机制来解决是第二次,到目前为止,使我对virtual流下最深刻印象的是在Automation技术中组件由于环境是否有能力分析virtual结构而导致是否需要分发接口的问题.如果,整天抱着《C++语法语义深入》这样的书,我不知你何时才能真正了解C++很多的特性.

### 学习路径及顺序推荐 对于初学者来说,C 和 C++ 是两门非常重要的编程语言。它们不仅广泛应用于工业界,还为后续学习其他高级语言打下坚实的基础。以下是关于这两种语言的学习路径及其优缺点分析。 #### 1. **C 和 C++ 的区别** C 是一种过程式编程语言,专注于函数调用和结构化编程[^3]。而 C++ 则是在 C 基础上扩展的一种面向对象的语言,支持类、继承、多态等功能[^2]。因此,在功能性和复杂度方面,C++ 明显更强大,但也更加复杂。 #### 2. **学习顺序建议** 通常情况下,学习 C 后再进入 C++ 更加合理。原因如下: - **基础知识积累**:通过学习 C,可以掌握诸如指针操作、内存管理等核心概念,这些知识点在 C++ 中同样重要[^4]。 - **降低难度曲线**:如果直接从 C++ 开始,则会面临过多的新特性(如 OOP),容易让新手感到困惑[^1]。 #### 3. **具体学习阶段划分** ##### (1)初级阶段 - 掌握基础语法 无论是 C 还是 C++,都需要熟悉基本的数据类型、运算符、流程控制语句等内容。这部分内容可以通过阅读经典教材完成,例如《C Programming Language》或《C++ Primer》[^2]。 ##### (2)中级阶段 - 数据结构与算法实现 当掌握了初步的编程技巧之后,应深入研究数据结构理论,并尝试用所学语言去解决问题。这一步骤非常重要,因为良好的逻辑思维能力和实际动手能力决定了未来的发展高度[^4]。 ```cpp // 示例代码展示简单的冒泡排序算法 #include <iostream> using namespace std; void bubbleSort(int arr[], int n){ bool swapped; for (int i=0;i<n-1;i++){ swapped=false; for (int j=0;j<n-i-1;j++) { if (arr[j]>arr[j+1]){ swap(arr[j],arr[j+1]); swapped=true; } } if (!swapped) break; // 如果没有发生交换说明已经有序 } } int main(){ int data[] = {6,8,2,5}; int size = sizeof(data)/sizeof(data[0]); cout << "Before sorting:\n"; for(auto num:data)cout<<num<<" "; bubbleSort(data,size); cout<<"\nAfter Sorting :"; for(auto num:data)cout<<num<<" "; return 0; } ``` ##### (3)高级阶段 - 面向对象编程(OOP) 一旦具备扎实的 C 编程功底后,便可以转向探索 C++ 特有的特性——OOP。此时,《Effective C++》这类书籍能够提供很多实用性的指导原则[^2]。 #### 4. **注意事项** 在整个过程中保持持续练习至关重要。同时也要关注项目实战环节,只有亲手编写过完整的应用程序才能真正巩固课堂上学到的知识点[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值