C++学习资源汇总(持续更新中)

这篇博客整理了多个C++学习的在线资源,包括知名的CSDN网站,为C++初学者和进阶者提供持续更新的学习材料。

 以下收集汇总一些C++的学习资料(持续更新中)

 

网站和论坛:

http://www.csdn.net/

http://www.iteye.com/

http://www.bccn.net/  编程中国

http://www.gameres.com/

 

http://social.msdn.microsoft.com/Search/zh-CN 微软msdn搜索

http://see.xidian.edu.cn/cpp/biancheng/cpp/rumen/ 微学苑C++入门教程

 

视频教程推荐:

范磊老师书籍《零起点学通C++》,有配套视频,又名从新手到高手c++全方位学习,视频地址http://www.enet.com.cn/eschool/video/c++/ 

这个是很不错的适合完全零基础的入门教程,从一个个简短的代码出发带领走入C++的世界。

齐幼菊老师《C++语言程序设计》,优酷视频地址:http://v.youku.com/v_show/id_XMTU2MTQ1MDg=.html?f=1835177

孙鑫老师视频教程《C++》,优酷视频地址: http://www.youku.com/playlist_show/id_2913195_ascending_1_mode_pic_page_1.html 孙鑫老师的视频以MFC为主,内容会有点深度,适合略有点基础后的继续入门学习。

达内CPP21天http://v.youku.com/v_show/id_XMTExNjE1NTQ4.html?f=3639501&o=0

 

严蔚敏书籍《数据结构》(c语言版),配套视频地址:http://v.youku.com/v_show/id_XODI5MjAwMjQ=.html?f=6589203&o=0 

严奶奶真是太厉害了!国内数据结构的权威。

 

 

书籍学习资料汇总: 

国内推荐

范磊老师书籍《零起点学通C++》,有配套视频,又名从新手到高手c++全方位学习,视频地址http://www.enet.com.cn/eschool/video/c++/

个人感觉蛮适合0基础的同学,再加上配套视频,甚好!

 

谭浩强的<<c++程序设计>>,2004年很红的书,500多页好评如潮,已重印好多次,

网上有该书的电子版并附带全书例子程序和习题答案程序,通俗易懂适合初学者入门。
他另一本书<<c程序设计>>,也很不错。

 

钱能老师的《C++程序设计教程》(第二版),这本书适合入门

第二版完全按照ANSI的c++标准编写,实例极多,全书内容上很多地方讲解很细致,练习题很有思考性和挑战性。

国内评价最好的二本c++教材书之一,另一本就是刚刚谭老师的。

《C++入门经典》第3版(用百度搜索网上可以下)此书实例较多,很多地方讲解较细致。  

<<21天学通C++ >>

 

严蔚敏书籍《数据结构》(c语言版),有她课堂的视频,配套视频地址:http://v.youku.com/v_show/id_XODI5MjAwMjQ=.html?f=6589203&o=0 

 

 

国外书籍资料

《C++ primer》,作者是美国著名计算机教育专家Stehpen Prata。 有中文版第五版,如果英语不好的小伙伴,可以考虑翻译版。开发工具是: VS2008 或者 VS2010,适合入门学习。 网上有原书电子版并附带全书例子程序和大部分习题答案,该书细致入微又系统完整,被誉为学习c++的最完整教材。强烈推荐!初学者必备 《think in C++》即《C++编程思想》,

More Essential C++
Essential C++ 即《C++基础》

 



适合高手的书是:

《C++ programing language》这是c++之父写给有相当程度人的,国外也叫它 C++专家手册,与C++ Primer是同等广博的“圣经”级别的参考书。
《Inside the C++ object model》  学习C++的类

《The C++ standard library》即《C++标准程序库-自修教程与参考手册》深入STL  STL怎么用?   A Tutorial and Reference by Nicolai M.Josuttis,
.《Accelerated C++ : Practical Programming by Example 》Accelerated C++ 通过实例来实践编程,   by Andrew Koenig and Barbara E. Moo   Koenig夫妇的作品,他们是顶尖领域的专家,相比Barbara E. Moo比较注重教学。

《Effective C++ 》,《More Effective C++》 by Scott MeyersC++程序员必读! 

<<Exceptional C++>>,《 More Exceptional C++ 》, 《Exceptional C++ Style》,by Herb Sutter 养成好的编程习惯
这三本也是该归在一起的,Herb Sutter是C++标准委员会的老大,现在微软,他的书当然也是相当具有启发意义的。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices 》即《C++ 编程规范》by Herb Sutter and Andrei Alexandrescu  101条 戒律。案头书的描述再好不过了,里面丰富的名言,丰富的内涵,以及每次重复阅读都能有新的发现!
  更多书籍的推荐可以参考论坛的帖子: http://bbs.csdn.net/topics/100105297 

网友推荐书籍列表http://zhidao.baidu.com/link?url=Nb2nq4iCIzuMMOtT7tB9qvy5Q3PY3Fc8Uk2f76pMgcuf0mK23Xaz2d8iez_m3NBswNUZ3eOnJ6s_hp8mUfySWa

 入门经典:
C++primer
C++程序设计原理与实践
C++编程思想(两卷合订本)
标准参考读物:
《C++程序设计语言(特别版)》
《C++标准程序库》

进阶读物:
《Effective C++中文版》
《More Effective C++中文版》
《Effective STL中文版 》
《Exceptional C++ Style中文版 》
《More Exceptional C++中文版 》
《C++沉思录》
《C++语言99个常见编程错误》
《C++编程规范 : 101条规则、准则与最佳实践》
深入专题:
《C++设计新思维》
《深度探索C++对象模型》
《C++ Templates中文版》
《C++语言的设计和演化》
《STL源码剖析》
设计模式
《C++模板元编程》
《Boost程序库完全开发指南 : 深入C++“准”标准库》
《Boost程序库探秘 : 深度解析C++准标准库》

 

到了深入专题的阶段,C++已经不再是一门编程语言了,而是一种哲学,帮助你窥探计算机程序设计中最深奥那些角落。

 

项目实例学习:

 

 

写给自己的话:

这些书籍和教程的内容本身一般都会有些交叉,可以自行选择而读。

 

凡事都不可能一蹴而就,C++学习也是。

很多东西,乍一看,似乎都懂了,其实内藏乾坤,C++亦是如此。

学习C++的基本语法,需要反复地学习,多看原理,多看代码,更重要的是要多动手写代码。

貌似都看懂了,可自己动手写就错误百出。每个人都难免会有些眼高手低,

不要害怕报错,正是在报错中我们逐步成长,不积跬步难以至千里!~

写代码是从简单的代码开始的,到跟着教程模仿高手的项目写代码,再到自己写项目。

 

 

网友们说有基础的话感觉还是直接看英文版比较好,少走弯路。

零基础的话,可以考虑中文版或者考虑看国内的入门书籍,再看国外的书籍,国外大神级的书很多。

 

俗语有云,入门学习,重要的是选择一本书。如果有条件有个老师会更好。

这样你学习效率将会有很大的提升,当然最重要还是学习态度和毅力,与坚持。

个人觉得如何选书,最主要还是要选择适合自己的,能看懂的。

在不同的学习阶段选择不同的书籍,既要能看懂又要有一定的高度。

毕竟,有的书太深奥无法下手,有的书看着云里雾里,

选书也像恋爱,有时候也是看缘分的。

等看了几本书之后,慢慢地就会知道自己需要看什么书籍。

 

多思考,理解C++ 程序的文件组织框架,如.h和.cpp文件该如何组织。如果这个理解好了,写代码,就知道在哪里,以及写什么了。
C++ 要多用oop面向对象的思想,尽量封装好。

 

基本知识知道需要多看例子,多动手写代码很重要!看书不是关键,读书千行不如手敲一行!

只想不写完的话你永远不知道会有什么问题

不用怕出错,多看编译的信息,看看错在那里,多改正,多问问别人。 

因为做项目的时候不仅是c++ 的内容了,还有进程,数据库,以及其他软件和工具等等的内容。这些辅助东东的一般初学者都是用比较基础的功能相对代码来说还是简单些的。

 

目录 第1篇初级篇 第1章 初识C++ 1.1 c++简介 1.2 C++与C的区别 1.3 学习c++之前需要先学C吗 1.4 c++与其他语言的区别 1.5 c++的版本以及安装问题 第2章 做一个最简短的C4-+程序 2.1 简单的屏幕输出小程序 2.2 输出语句的使用 2.3 std::介绍 2.4 iostream与iostream.h的区别 2.5 重名问题 2.6 注释 2.7 总结 第3章 初步了解函数 3.1 一个简单的函数 3.2 函数的传参 3.3 函数的返回值、参数与变量 3.4.函数的声明与定义 3.5 局部变量 3.6 全局变量 3.7 总结 第4章 C4-+数据类型 4.1 变量的定义 4.2 将变量及数据存储在内存中 4.3 布尔型变量 4.4 字符型变量 4.5 wchart双字符型变量 4.6 整型概述 4.7 整型变量的定义 4.8 浮点型变量 4.9 常量 4.10枚举型常量 第5章 if语句与运算符 5.1 语句的定义 5.2 块的定义 5.3 表达式的定义 5.4 运算符的定义 5.4.1 赋值运算符的定义 5.4.2 数学运算符的定义 5.4.3 赋值运算符与数学运算符的联合 5.5 自加与自减 5.5.1 前置 5.5.2 后置 5.6 表达式的优先级 5.7 关系运算符 5.8 if语句 5.8.1 else语句 5.8.2 elseif语句 5.8.3 if语句的嵌套 5.9 逻辑运算符及其使用 5.9.1 逻辑“与” 5.9.2 逻辑“或” 5.9.3 逻辑“非” 5.9.4 逻辑运算符的优先级 5.9.5 运算式的真假关系 5.1 0三目运算符 5.1 0.1 三目运算符的优先问题 5.1 0.2 三目运算符的使用问题 5.1 0.3 三目运算符的型别问题 5.1 0.4 三目运算符在字符型变量中的应用 5.1 1复杂嵌套的if语句 5.1 2总结 第6章 面向对象 6.1 面向对象程序语言的主要特征 6.2 类、对象和成员 6.3 类、对象和成员的使用方法及区别 6.3.1 声明一个类 6.3.2 命名习惯 6.3.3 定义一个对象 6.3.4 类与对象的区别 6.3.5 对象与成员的关系 6.3.6 不要给类赋值 6.3.7 对象只能调用类中存在的方法 6.4 公有 6.5 私有 6.6 成员函数的声明和定义 6.7 内联函数 6.7.1 普通内联函数 6.7.2 内联成员函数 6.8 头文件与源文件 6.9 const成员函数 6.10构造函数 6.11默认构造函数 6.12析构函数 6.13析构对象数组 6.14总结 第7章 循环语句 7.1 循环语句的前身——goto语句 7.2 慎用goto语句 7.3 while语句 7.3.1 带运算符的while语句 7.3.2 以字符为条件的while语句 7.3.3 限定while循环的次数 7.3.4 continue语句 7.3.5 break语句 7.3.6 永不休止的while循环 7.4. do……while循环 7.5 for循环 7.5.1 灵活的for循环 7.5.2 条件为空的for循环 7.5.3 执行为空的for循环 7.5.4 嵌套的for循环 7.6 switch语句 7.6.1 switch语句常见错误 7.6.2 switch的菜单功能 7.7 总结 第8章 指针 8.1 什么是地址 8.2 用指针来保存地址 8.2.1 空指针 8.2.2 指针与变量类型 8.2.3 用指针来访问值 8.2.4 指针地址、指针保存的地址和 该地址的值 8.2.5 指针对数值的操作 8.2.6 更换指针保存的地址 8.3 为什么使用指针 8.3.1 栈和堆 8.3.2 用指针创建堆中空间 8.3.3 用指针删除堆中空间 8.4 动态内存 8.4.1 内存泄漏 8.4.2 在堆中创建对象 8.4.3 在堆中删除对象 8.4.4 访问堆中的数据成员 8.4..5 在构造函数中开辟内存空间 8.4.6 对象在栈与堆中的不同 8.5 this指针 8.6 指针的常见错误 8.7 指针运算 8.7.1 指针的加减运算 8.7.2 指针的赋值运算 8.7 _3指针的相减运算 8.7.4 指针的比较运算 8.8 指针 8.8.1 常量指针 8.8.2 指向常量的指针 8.8.3 指向常量的常指针 8.9 总结 第9章 引用 9.1 什么是引用 9.1.1 引用的地址 9.1.2 引用就是别名常量 9.1.3 引用对象 9.1 4空引用 9.2 函数的参数传递 9.2.1 按值传递 9.2.2 按址传递 9.2.3 按别名传递 9.2.4 让函数返回多个值 9.3 传递对象 9.3.1 按值来传递对象 9.3.2 利用指针来传递对象 9.3.3 利用cost指针来传递对象 9.3.4 利用引用来传递对象 9.3.5 到底是使用引用还是指针 9.3.6 引用和指针可以一块用 9.4 引用应注意的问题 9.4.1 引用容易犯的错误 9.4.2 引用一个按值返回的堆中对象 9.4 -3引用一个按别名返回的堆中对象 9.4.4 在哪里创建,就在哪里释放 9.5 总结 第10章 深入函数 10.1 函数重载 10.1.1 普通函数的重载 10.1.2 成员函数的重载 10.2 函数的默认参数 10.3 重载构造函数 10.3.1 成员变量的赋值与初始化 10.3.2 成员变量的初始化与构造函数 10.3.3 复制构造函数 10.3.4 构造函数和new运算符 10.3.5 再谈默认构造函数 10.4.析构函数和delete运算符 10.4..1 默认析构函数 10.4.2 调用构造函数进行类型转换 10.5 浅层复制构造函数 10.6 深层复制构造函数 第11章 运算符重载 11.1 运算符重载 11.2 在成员函数中实现自加 11.3 重载前置自加运算符 11.4 创建临时对象 11.5 创建无名临时对象 11.6 取消创建临时对象 11.7 重载后置自加运算符 11.8 重载加法运算符函数operator+ 11.9 重载赋值运算符函数operator 11.10转换类型运算符 11.10.1 温习调用构造函数实现的类型转换 11.10.2 通过构造函数将变量转换为一个对象的成员变量 11.10.3 通过operator关键字进行转换 11.11什么可以重载,什么不可以重载 第12章 继承 12.1 什么是继承和派生 12.1.1 复杂的继承和派生 12.1.2 继承和派生如何在C++中实现 12.1.3 继承的种类及语法 12.1.4 单一继承 12.2 公有型、保护型和私有型 12.3 访问权限 12.4 多重继承 12.5 继承的构造与析构 12.6 合理利用基类构造函数 12.7 继承和重载的两义性问题 12.7.1 多重继承容易产生两义性 12.7.2 继承中的重载 12.7.3 两义性的归属问题 12.7.4 减少两义性产生的混淆问题 12.7.5 虚基类不会产生两义性 12.8 总结 第13章 虚函数 13.1 指向子对象的父指针 13.2 虚函数 13.3 拳击游戏 13.4 继承是否可以实现多态性 13.5 在编译时的静态联编 13.6 在运行时的静态联编 13.7 在运行时的动态联编 13.8 在编译时的动态联编 13.9 调用虚函数 13.9.1 在虚函数中调用成员函数 13.9.2 3种调用虚函数的方式比较 13.10被继承的虚函数仍然是虚函数 13.11系统是如何调用虚函数的 13.12在虚函数中使用成员名限定 13.13虚析构函数 13.14总结 第14章 数组 14.1 数组的基本用法 14.1.1 什么是数组 14.1.2数组元素 14.1.3数组下标越界 14.1.4 倒序输出 14.1.5 将数组的下标定义为常量 14.1.6 手动操作数组元素 14.1.7 数组的初始化 14.2 数组的用途 14.2.1 求平均考试成绩 14.2.2 兔子繁殖问题 14.2.3 数字排序问题 14.3 数组在内存中的分布 14.4.输出数组名 14.5 数组名与函数 14.6 传递与接收 14.7 数组与函数 14.7.1 函数传参实例一——求数组所有元素的和 14.7.2 函数传参实例二——用递增法查找数据 14.7.3 函数传参实例三——用二分算法查找数据 14.7.4 函数传参实例四——判断数组是否按照顺序排列 14.7.5 函数传参实例五——判断数组排列方式后执行不同的函数 14.8 数组在对象中的传参 14.9 对象数组 14.10 在对象数组中初始化成员变量 14.11 指针数组 14.12 枚举常量与数组 14.13 多维数组 14.14 多维数组的初始化 14.15 字符数组 14.16 重载数组下标操作符 14.17 总结 第15章 链表 15.1 声明链表结构 15.2 简单的图书链表 15.2.1 图书链表 15.2.2 类的链表 15.3 动态链表 15.3.1 动态链表的建立 15.3.2 解决输入字符造成死循环的问题 15.3.3 动态链表的显示 15.3.4 动态链表的删除 第16章 多态性 第17章 类的特殊成员 第2篇 高级篇 第19章 代码重用 第20篇 高级篇 第20章 友元类与嵌套类 第21章 流 第22章 命名空间 第23章 模板 第24章 异常和错误处理 第25章 补充知识 附录A ASCII码对照表 附录B C++的关键字 附录C C++常用头文件列表 附录D 运算符的优先级 后记
目录 第1篇初级篇 第1章 初识C++ 1.1 c++简介 1.2 C++与C的区别 1.3 学习c++之前需要先学C吗 1.4 c++与其他语言的区别 1.5 c++的版本以及安装问题 第2章 做一个最简短的C4-+程序 2.1 简单的屏幕输出小程序 2.2 输出语句的使用 2.3 std::介绍 2.4 iostream与iostream.h的区别 2.5 重名问题 2.6 注释 2.7 总结 第3章 初步了解函数 3.1 一个简单的函数 3.2 函数的传参 3.3 函数的返回值、参数与变量 3.4.函数的声明与定义 3.5 局部变量 3.6 全局变量 3.7 总结 第4章 C4-+数据类型 4.1 变量的定义 4.2 将变量及数据存储在内存中 4.3 布尔型变量 4.4 字符型变量 4.5 wchart双字符型变量 4.6 整型概述 4.7 整型变量的定义 4.8 浮点型变量 4.9 常量 4.10枚举型常量 第5章 if语句与运算符 5.1 语句的定义 5.2 块的定义 5.3 表达式的定义 5.4 运算符的定义 5.4.1 赋值运算符的定义 5.4.2 数学运算符的定义 5.4.3 赋值运算符与数学运算符的联合 5.5 自加与自减 5.5.1 前置 5.5.2 后置 5.6 表达式的优先级 5.7 关系运算符 5.8 if语句 5.8.1 else语句 5.8.2 elseif语句 5.8.3 if语句的嵌套 5.9 逻辑运算符及其使用 5.9.1 逻辑“与” 5.9.2 逻辑“或” 5.9.3 逻辑“非” 5.9.4 逻辑运算符的优先级 5.9.5 运算式的真假关系 5.1 0三目运算符 5.1 0.1 三目运算符的优先问题 5.1 0.2 三目运算符的使用问题 5.1 0.3 三目运算符的型别问题 5.1 0.4 三目运算符在字符型变量中的应用 5.1 1复杂嵌套的if语句 5.1 2总结 第6章 面向对象 6.1 面向对象程序语言的主要特征 6.2 类、对象和成员 6.3 类、对象和成员的使用方法及区别 6.3.1 声明一个类 6.3.2 命名习惯 6.3.3 定义一个对象 6.3.4 类与对象的区别 6.3.5 对象与成员的关系 6.3.6 不要给类赋值 6.3.7 对象只能调用类中存在的方法 6.4 公有 6.5 私有 6.6 成员函数的声明和定义 6.7 内联函数 6.7.1 普通内联函数 6.7.2 内联成员函数 6.8 头文件与源文件 6.9 const成员函数 6.10构造函数 6.11默认构造函数 6.12析构函数 6.13析构对象数组 6.14总结 第7章 循环语句 7.1 循环语句的前身——goto语句 7.2 慎用goto语句 7.3 while语句 7.3.1 带运算符的while语句 7.3.2 以字符为条件的while语句 7.3.3 限定while循环的次数 7.3.4 continue语句 7.3.5 break语句 7.3.6 永不休止的while循环 7.4. do……while循环 7.5 for循环 7.5.1 灵活的for循环 7.5.2 条件为空的for循环 7.5.3 执行为空的for循环 7.5.4 嵌套的for循环 7.6 switch语句 7.6.1 switch语句常见错误 7.6.2 switch的菜单功能 7.7 总结 第8章 指针 8.1 什么是地址 8.2 用指针来保存地址 8.2.1 空指针 8.2.2 指针与变量类型 8.2.3 用指针来访问值 8.2.4 指针地址、指针保存的地址和 该地址的值 8.2.5 指针对数值的操作 8.2.6 更换指针保存的地址 8.3 为什么使用指针 8.3.1 栈和堆 8.3.2 用指针创建堆中空间 8.3.3 用指针删除堆中空间 8.4 动态内存 8.4.1 内存泄漏 8.4.2 在堆中创建对象 8.4.3 在堆中删除对象 8.4.4 访问堆中的数据成员 8.4..5 在构造函数中开辟内存空间 8.4.6 对象在栈与堆中的不同 8.5 this指针 8.6 指针的常见错误 8.7 指针运算 8.7.1 指针的加减运算 8.7.2 指针的赋值运算 8.7 _3指针的相减运算 8.7.4 指针的比较运算 8.8 指针 8.8.1 常量指针 8.8.2 指向常量的指针 8.8.3 指向常量的常指针 8.9 总结 第9章 引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值