如何学习C++编程
1、首先准备一台PC,学编程一般对PC没有太大的要求,一般主流的配置就好。
2、有了电脑之后,就得考虑安装什么操作系统了,主流使用的操作系统是windows,不过在这里不建议学习C编程使用windows,建议使用Linux。所以学习者最好安装双系统,或者彻底习惯Linux系统。
3、不管学习哪门编程语言,我都建议学习者必须有一本关于此语言的全面知识的书籍,大一般采用的是谭浩强老师的《C语言程序设计》,还有
《C语言C++学习指南》从入门到精通(语法篇)视频课程在线学习等,建议学习者可以去仔细研读。
4、在平时学习看书的时候,一定有学会做笔记的习惯,而且不仅要记录,还要经常看自己所做的笔记,这样才会有较好的学习效率。
5、多逛技术论坛或者技术问答社区,想别人分享自己的代码,有要积极去阅读别人的代码,互相取长补短。
6、在C语言基础学习得差不多之后,可以深入学习数据结构,以及自己尝试做一些简单的项目,比如学生学籍管理系统、图书管理系统,银行管理系统等。
7、语言功能掌握到一定程度之后就是要考虑方向的时候了,建议向嵌入式编程方向发展,这是你就有必要学习一些硬件的东西。嵌入式产品在航空、医疗、家电、消费电子、汽车电子、移动等众多领域都可以看到,应用领域极为广泛,所以现在嵌入式开发相当热门,并且具备非常好的发展前景!
01
首先编程要用到编程的软件,这里使用CodeBlocks。
02
打开CodeBlocks,点击左上角的File,然后点New里面的project。
03
接下来跟着我的步骤走,点击我标记的。
04
然后选择C++。
05
输入你要创建的标题名,这个只能用英文和数字,不能用汉字,然后点击Next。
06
点击Finish。
07
之后就会出现C++的编程框了,左边是我们创建的文本文档,右边是我们要写入的程序语言。
08
把你编写的程序完成后,点击上面的运行就会弹出运行框,成功运行你的程序就编好了。
End
大一学习的c++,工作之后也一直用的c++。
1. 涵盖c++入门到精通的图书列表
《The C programming language》必读
《C++ Primer》,号称是一本可以让你从C或JAVA程序员转为一个真正的C++程序员的入门参考书,必读。
《The C++ programming language》,C++之父,人称B教主著作,在看过C++ primer后,应该可以跳章选读。
《Think in c++》,网上说此书的中文版翻译质量奇差,推荐看影印版,选读。
《Effective c++》,类似 Effective java,讲的是最佳实践,程序员必读。
《More effective c++》,上书的补充。
《The C++ standard library》,会写C,不会用标准库怎么行。这就跟java程序员不会用java.util包一样,必读。
《Effective STL》,STL库的最佳实践。Effective C++作者又一力作,必读。
《The annotated STL source》,STL源码分析,这本书应该算是深入/精通类了,选读。
《Generic programming and STL》,号称C++编程里,就是跟模板,泛型打交道,那么精通泛型是势在必行。
《C++ Template》,C++模板编程,代码复用的经验之道,必读。
《Exceptional C++》,跟Effective C++类似,属于最佳实践和难题解析,书中列出了许多应用场景和实例代码供读者揣摩,选读。
《More Exceptional C++》,上书的补充。
《Exceptional C++ Style》,上上书的补充
《Inside The C++ Object Model》,有了上面这些书做铺垫,那么终于可以读此神书了。它会带你游览C++对象模型的底层实现机制。读完此书,任何C++代码看起来如同行云流水,必读。
2. 优秀的C/C++开源项目(阅读代码)
OS:Linux kernel LVS、Linux应用程序
DB:Mysql、PostgreSQL
Complier:VM、GCC
Framework:OpenSip、SipProxy、
Net:ACE(Java Mina、Netty)、TCP/IP、HTTP协议栈
Cache:Memcached、Redis、
Library:STL(java util package)、Boost、Qt(UI)、
balance:Apache、Nginx
GSL
地址:https://github.com/microsoft/GSL
Boost文档
地址:https://www.boost.org/doc/libs/
wxWidgets官网
地址:http://wxwidgets.org/
gtkmm
地址:https://www.gtkmm.org/en/
CopperSpice
地址:https://www.copperspice.com/
Qt
地址:https://www.qt.io/Eigen
地址:http://eigen.tuxfamily.org/index.php?title=Main_Page#Documentation
Plot utils
地址:https://www.gnu.org/software/plotutils/
Asio
地址:https://think-async.com/Asio/
POCO
地址:https://pocoproject.org/
abseil
地址:https://abseil.io/
C++开源库汇总列表
地址:https://en.cppreference.com/w/cpp/links/libs
除了这些开源项目,也可以找一些免费的公开课,那这里也推荐一个ACM金牌大佬讲授的免费C++课程,可以去体验一下:
学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样
已失效
3.C++语法讲解
语言基础
详细介绍变量、表达式、语句、指针、数组、流程控制、函数、文件组织等。抽象机制 - 面向对象编程
深入讲解C++的抽象机制,封装(类)、继承、多态;操作符重载、函数对象、异常处理等。模板 - 泛型编程
详细介绍C++的模板机制,类模板、函数模板、模板特化等方面的内容。引用和指针:为什么引用很重要
const关键字:为什么const很重要
名字空间 (namespace)
关于C++对象
内置类型的对象,如int、double对象,自定义类型的对象对象类型的定义
关键字class和struct
类成员:成员函数和数据成员
静态数据成员
成员的访问控制
对象的size
关于this指针
onst成员函数、const究竟修饰什么
mutable数据成员
4种特殊成员函数:constructor、destructor、copy constructor、operator=
对象的构造、初始化列表
对象的析构
对象的复制
什么情况下有必要显式定义4种特殊函数
C++对象生命周关于C++中操作符重载机制
重要操作符重载
算术运算:+, -, *, /, %, ++, --, ...
关系运算:>, <, ==, !=
下标存取:[ ]
函数调用:(),函数对象
类型转换、单参数构造函数与隐式转换、阻止隐式转换 -- explicit关键字友元与成员
基类与派生类
再谈对象的构造与析构
虚函数、纯虚函数
派生类的内存布局、虚函数表
多态、多态类型、如何体现多态
虚析构、为什么虚析构很重要
多继承
虚继承与虚基类
对基类的访问、public / protected / private继承
Down cast:static_cast<>和dynamic_cast<>
运行期类型识别 (RTTI)
C++语言机制提供了完整的OOP支持
超越继承
OOP若干法则和设计模式
- 《C++ Primer》
- 最新版本:第三版(第四版国外已上架, 国内一些网上书店也在预订中)
- 适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是 好事。
- 《The C++ Programming Language》/《C++程序设计语言》
- 最新版本:第三版特别版
- 简称 TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The C Programmer Language》区分开来)
- 《Essential C++》
- 《Accelerated C++》
- 这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,完全值得推荐。
- 以上几本书都有相应的中文版,而且翻译的质量都不错。上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。
- 《Effective C++》
- 最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)
- 简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。
- 《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 编程规范》
- 个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系 列都在这里得到了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。
- 我 的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至少在2009年以前都不 会过时,人们将广为传诵它制定的101条戒律。
- 还不知道他的简称,也许“101”会成为一个候选者?
- 提到《Effective C++》,那么另外三本书一一浮出水面:
- 《More Effective C++》
- 《Exceptional C++》
- 《More Exceptional C++》。
- 新书《Exceptional C++ Style》也是值得一看的好书。
- 上 述几本书,一本也不应该放过。
- 个人建议上述书籍按顺序阅读。并且,在将来反复阅读这几本书。
4.深入c++面向对象
4.1、从C到C++
4.2、深入C++对象
4.3、操作符重载
4.4、面向对象基础 -- 继承
4.5、关于继承更多的话题
4.6、C++与面向对象设计
5.C++泛型编程与STL
5.1、C++ 模板机制
5.2、STL 概要
5.3、STL容器
5.4、STL迭代
5.5、STL算法
5.6、预与定义STL数对象
5.7、STL适配器
6. C++进阶
《Thinking in C++》/《C++编程思想》
这本书及其中文版传言好坏都有,没有认真看过,不做评价,如果确有兴趣,不妨尝试 一下该书。
以下几本书基本上涉及的都是语言本身,大体上可以按照以下的顺序阅读。
《C++必知必会》
如果早一年,这本书将是重量级的,然而它被101和《Exceptional C++ Style》盖过一头。
《C++ Gotchas: Avoiding Common Problems in Coding and Design》/《C++程序设计陷阱》
这又是一本我未曾读过,而且广受好评的书。
《STL 源码剖析》
这本书我刚到手,就被人"借"走,以至于到现在也没有看过。看过这本书的朋友,可以给一个合适的评价。
7. C++进阶之数据结构基础
这是所有编程语言中最应该学习的部分,程序组成的基础之一。
顺序存储、链式存储、循环链表;
双向链表、栈(顺序和链式)、队列(顺序和链式);
栈的应用、树基本概念及遍历、二叉树;
排序算法、并归算法、选择、插入、快速、希尔。
以上这些内容你知道吗?
8. C++进阶之UI界面开发
掌握QT类库构架,图形界面开发模型;
掌握QT开发技巧,消息机制,图形处理;
掌握QT网络编程,UDP,TCP使用方式;
掌握QT文件处理方式,序列化;
掌握QT在windows,linux,ios,android不同平台下的移植技术。
9. C++进阶之Unix/Linux网络服务器
掌握Unix/Linux平台开发方式;
熟练使用系统调用;
熟练Unix/Linux内存管理,进程,线程调度;
熟悉网络服务器开发方式,熟练编写TCP,UCP网络服务程序;
掌握同步/异步IO模型在网络编程中的使用方式。
10.C++进阶之数据库开发
掌握SQL语言的实用技巧。Oracle,MySQL数据库的使用方式。
如果你能熟练掌握以上列出的技能,具备解决复杂问题和技术难点的能力,而且你能独立开发一些比较复杂的功能模块,那么很荣幸地告诉你,你已经达到中级水平,薪资过万对你来说简直是小菜一碟。
11.C++标准参考
C++ reference
地址:https://en.cppreference.com/w/
C++ Coding Standard
地址:http://www.possibility.com/Cpp/CppCodingStandard.html
Standard C++
地址:https://isocpp.org/
State of C++ Evolution
地址:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2597.html
The C++ Resources Network
地址:http://www.cplusplus.com/
Draft C++ Standard: Contents
地址:http://eel.is/c++draft/
学习C++的话,看你目前的水平,我说一下从完全不懂到最后高手的专家推荐路线吧:
1. 《C++ Primer》Lippman写的,经典中的经典,C++入门的宝典,读完这本书,基本语法过关,部分技巧掌握。
2.《The C++ programming language》C++的创始人Bjarne Stroustrup写的,这本书的权威性毋庸置疑,而且这里面讲到了一些比较底层的东西,如果你看过了《C++ Primer》的话,这本书可以跳着看,懂的就跳过。
3.《Effective C++》 Scott Meyers顶级大师用活泼幽默的语言写的书,这本书中讲到了许多应该注意的问题,这是十分值得购买的书。(Lippman曾把程序员分为看过effective c++的和没看过的两类。由此可见此书的重要性)
4.《More Effective C++》上书的姊妹篇,这本书里讲到了许多关键性的技术,对提高程序的效率是非常有帮助的。
5.《Advanced C++》这是一本神奇的书,里面讲到了许多连C++设计者都没想到的妙法,解决了许多看似不可能解决的问题。Scott Meyers曾隆重推荐过的书。
6.《Inside the C++ Objects Model》又是Lippman的大作!这本书讲到了他在开发第一个C++编译器时的许多想法,彻底解析了C++底层机制是如何实现对象模型的,看过这本书,你对C++的了解会有质的飞跃!从这刻起,你有权力说你是一个C++程序员了!
光学C++语言基本上看完上述的书就是高手了,其他经验要在实践中累积,你在看这些书的同时就应该多做一些小程序,小项目,提高水平的速度是飞快的.这是我个人的经验。另外,你学了C++还要开发程序,开发软件,无疑要使用MFC之类的东西
《API Programming》和《MFC Windows 程序设计》两书值得一看。这两本书能迅速提高你的实践水平。
最后,不要被这么多书吓倒,用起心来,很快能搞定!祝你早日成功!!
我也是从一个C++新手小白摸爬滚打走过来的,成长为现在的大牛(自封的,嘿嘿),个人觉得,C++是这么多高级语言中比较复杂的一款(不接受反驳),并且C++相关的配套知识点太多,比如C++11,C++14,模板,STL,Boost、COM、WindowsAPI,MFC,QT 等 ! 作为小白,自学因为没有一个好的课程知识体系规划,像一个无头苍蝇,会比较懵, 先学哪些?后学哪些?都搞不清楚,前期学的很痛苦 !
我自己当时在学的时候,是买了几本书《C++程序设计》,《C++ Primer 》 ,但相对看书而言,我还是更倾向于看视频课程,你可以根据自身的学习习惯来找到适合自己的学习方法,我之前是看的这个里面的C、C++视频课程,里面的老师会告诉你正确的课程学习顺序
根本不用背库函数,买一本《C++标准程序库》,把里面例题敲一敲,大概了解每个函数是干什么的,每个函数具体用法,包括参数都背下来是不可能的,关键是做项目时知道什么时候该用什么函数,具体怎么用可以百度一下,很方便!
关于进度,下面是我的学习过程:
C++ Premier-->STL标准模板库-->MFC
楼上的那些路径,让我感动,谢谢了。
怎样更好学习C语言
7. 由于C语言灵活、强大,初学者要全面地掌握它是不可能的,因此在学习C语言的过程中,不要在细枝末节上浪费精力(比如++、--用于表达式的计算,实际上是没有意义的),但一定要熟练掌握C语言的流程控制语句、数组、函数、指针等基础知识的应用,为学习面向对象程序设计打下坚实的基础。如果这些知识你学不好,要后续学习...
C语言初学者如何配置编程环境最适合学习(Windows 环境下)?
至于MinGW,作为Windows下的轻量级GNU环境,你需要根据自己的系统选择32位或64位版本,我推荐的是nuwen.net的64位发行版,以保持最新的功能。综上所述,选择编程环境时,权衡易用性与深度学习,根据个人需求和偏好,找到最适合自己的开发工具,才能让C语言学习之旅更加顺畅。祝你在编程的道路上越走越远!
学习编程先学什么?
学习编程的相关书籍推荐 1、《c primer plus》《C Primer Plus》是C语言的经典教材。本书以丰富多样的程序为例,讲解C语言的知识要点和注意事项。每章末尾设计了大量复习题和编程练习,帮助读者巩固所学知识和提高实际编程能力。附录给出了各章复习题的参考答案和丰富的参考资料。适合希望系统学习C语言的...
初学者如何学C语言?
相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:一是学习顺序 先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-...
如何才能学好c语言这门编程呢?
学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。 那么,我们如何学好《C程序设计》呢? 一.学好C语言的运算符和运算顺序 这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使...
学习c语言用什么软件
整个软件比较大,运行起来电脑可能会比较卡,而且功能比较复杂,初学者来说,需要一段时间才能适应和基本掌握,但的确是一个值得学习和使用的IDE环境。这也是一个非常经典的C语言编程环境,只不过在Linux环境下比较常用,免费、跨平台,插件扩展比较丰富,轻巧灵活,功能简洁,安装GCC编译器后,也可以直接...
如何才能提高用C语言编程的能力?
在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。 先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为...
学习编程,从何入手
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。 (3)VC是微软制作的产品,与操作系统的结合更加紧密。 缺点 对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。 综述:VC是程序员用的东西。如果你是一个永不...
我想自学编程,知道了c语言,但对学习c,c++,c#还有汇编不知从何下手,先后...
学习C#一段时间后:如果你觉得C#还可以,那就深入学习C#。C\/C++就暂时放下,因为学习它们将花费比较多的时间,还不容易出成绩。等到你觉得你C#学习到能够很简单地完成公司的项目,你就可以利用空余时间学习C\/C++了,不过我更建议你学习html、js、php、sql等。如果你学习过C#后,对编程有了一定了解了...
我想学c语言,我是初学者,基础为零。学习c语言编程需要什么软件?学习c...
4、接下来是专攻,应该看《C与指针》《数据结构(C语言)》5、再学C++再到Java、C#,以后甚至可以玩Linux。学习过程中,不要局限于书本,要会自己开发程序,多上机操作。总之,要有恒心,你走了这条路,就应该一直走下去。附:编程用Visual C++ 6.0,7.0的太大了,下载地址http:\/\/www.pc6.com...
产古景天: 最快的学习方法是模仿着别人写代码.你网上找那种C++的经典代码.模仿着他写,就是先看一遍,然后自己尽量不看源代码把它写出来.这样学习比你看书要效率高得多!在看代码的过程中,遇到问题就百度查一下,久而久之,你就是C++高手了!
邢台县17650753676: 怎么学好C++啊? - ?
产古景天: (希望对你有所帮助) 我们在学习C++的时候,有很多人不知怎样学习它、怎样学好它,也不知应先从那里开始学起,关于C++的入门其实很简单,你只要一步步按照你手中的那本C++教材来学就可以了,也许你把C++学的很烂,这时你千万不...
邢台县17650753676: 怎样才能学好c++语言的精髓 - ?
产古景天: 学一门计算机语言,首先必须有耐心,决心.还有必须动手去做,去尝试.c++是从c语言演变而来的,他们的不同就是c++有类的概念,别的差不多.从简单的去学习,如:输出Hello Word!.越简单的越出错,所以要从简单的牢牢地把握好,基础知识有,变量,常量,类型,字符串,数组,运算符,很多很多,基础有点烦躁,然后是条件语句,循环语句,函数,类,你学会了一门语言,其他的都差不多了.好好加油不会的问.别人,对你帮助很大,不要一直问,要自己动手
邢台县17650753676: 如何学好C++语言 - ?
产古景天: 我这里有些经验,希望对你有帮助: 1.把C++当成一门新的语言学习(和C没啥关系!真的.); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们...
邢台县17650753676: 如何才能学好C++? - ?
产古景天: 一、C语言要有比较好的基础,虽然C++相对C而言已经有很多不一样之处,但C是编程语言的基础,学好C才比较容易进入其它语言;其次,经常上机,有好的构思不要满足于在纸上写写,要在机子上运行一翻,只有常上机才能熟练;最后,有...
邢台县17650753676: 怎么样才能学好 C++ - ?
产古景天: 1.把C++当成一门新的语言学习(和C没啥关系!真的.); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;...
邢台县17650753676: 怎样学好c++语言?
产古景天: 就目前来说 C是公认的编程入门语言 第一 因为他比较简单 容易让初学者接受第二 目前来说 不管是工作和学习 都会涉及到C 所以建议你先学C你现在是新手 学C到一段时间就会对编程这行有和初步了解到那时候 你可以选择一个自己喜欢的语言 主攻学习编程一定要坚持 切忌半途而废学习的过程中 要多思考 多敲代码 因为编程主要是针对对象的 所以你要努力培养自己的逻辑思维能力和抽象思维能力最后 祝你成功一定要坚持下去 任何东西 你去做的时候就不难 你不做只去空想的时候 就会很难
邢台县17650753676: 怎样学好c++?
产古景天: 不要被内心的恐惧而放弃努力的学习,楼上你懂个p,学校既然先上c自然是先介绍一些基本的面向过程的思想以及基本的编程概念,然后教c++的面向对象,关于c语言的学习必须抓住3个方面,1.上课听讲方面,不要强迫自己听,而是听自己感兴趣的东西,真正学会的往往是自学,老师只是辅助工具,在了解的基础上老师加以点拨才是关键.2.课前的自学,既然老师只是辅助,自学便是关键,自己由兴趣出发去学习作为动力,听讲才更有效果.3.课后的练习,实际操作才是关键的关键,真正想学好c++一定得坚持练习,每周都得独立的练习.楼主一定茅舍顿开,豁然开朗了吧,自觉采纳为满意答案吧.
邢台县17650753676: 如何学好C++语言呢??
产古景天: 程序就是方法,你把方法告诉计算机,计算机就按照你说的方法来做,首先需要编程基础,从C++开始学可以少走弯路,学习JAVA虽然实用,但不底层,也没有强大指针,指针是很强大的,他能指向你程序内存空间任何地方,当然是提交了的内存页,C++还能调用API函数,这是微软留给程序员写WINDOWS程序用的,有的是为了系统调试使用,他直接地操控WINDOWS内部,无所不能,很多高级程序都要用API,WINDOWS在这方面封装得很好,你只能用他的接口,除非你知道WIN漏洞,LZ需要学很多,建议从C++做起
邢台县17650753676: 怎么学好C++语言?
产古景天: 学习编程的一些方法和心态 1. 不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 2 . 不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点...