【c++基础】1.历史、IDE、概述

来源:互联网 发布:矢量动画制作软件 编辑:程序博客网 时间:2024/06/08 06:54

写在前面:

以前记录东西都是直接写在word文档里,因为一般只会在自己电脑上用和看,所以觉得还算方便,但内容越来越多之后发现还是不好管理,又看了知乎上大神对“IT行业写技术博客的重要性”的回答,觉得有理,于是就想着把东西移植到博客里来,添加一些内容,一来好管理和保存,二来是分享自己的学习心得(如果对你有用的话),好了废话不多说,开始吧。


【一】c++的历史


c++是c语言的继承和扩展,它既可以进行c语言一样的面向过程编程,也可以进行以基于类的面向对象编程,说c++和c是同一门语言在某些层面上可以这么说,但我建议你最好不要讲他们混为一谈,他们包含两种不同的编程思想。c/c++的发展历程大致如下:
1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。
1979年,Bjame Sgoustrup(出自剑桥大学)来到bell实验室,他结合Simula和ALGOL两种语言(前者的类,后者的结构),改良了c语言使之支持类,1983年该语言被正式命名为C++。在c++标准化第一个草案后不久,STL被提议包含到c++标准中。
1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++,即c++98,所有的主流C++编译器都支持这个版本的C++。
2003年,C++标准委员会对C++98中的问题进行了修订,发布了C++03版本,该版本并没有对核心语言进行修改。
2011年,新的C++标准C++11面世,增加了多线程支持、通用编程支持等,新增了很多新特性,标准库也有很多变化,集成了C++技术报告1库(TR1)中的大部分内容,这是目前最流行的c++标准。
2014年12月15号,C++ ISO/IEC标准的最新版本C++14。C++14是对C++11的小范围的扩展,主要内容是修复bug和略微提高性能。
c++17将是c++的一个新的变革,新增了很多重要的特性(如variant 变体),其发布已经指日可待。


【二】c++的现状


就我个人而言,目前学习的主要语言就是c++了,Java和其他语言略有接触,了解的不是很深,所以不好发表个人意见,就借用一些官方的数据来说明吧。
2015年TIOBE的编程语言排行榜,C++位列第三。Stack Overflow 2015年的开发者调查结果中有一项是“最受欢迎的技术”,C++排名第七,而在最被爱的语言中,C++11排名第二(仅次于Swift)。
有机构通过分析与C++语言相关的招聘信息得出的结果,使用C++语言的前三个行业是:金融、银行和游戏。接下来是Front Office、通信、电子、投行、市场、制造业、零售业。
就我个人而言,语言只是一种工具,看你怎么用,用在什么地方,我认为语言没有高低贵贱之分,不存在有些人所谓的“世界上最好的语言”,应用领域不一样,不可以进行比较,就如之前看过一个帖子上说的,php在写web后台时很给力,但是你用它去做大数据,去做人工智能就是个笑话(这些也可能我自己的是坐井观天之见吧)。


【三】IDE的选择


就像没有最好的语言一样,IDE也是一种工具,也没有最好的IDE,用着顺手就行,不过我个人认为比较顺手的IDE有以下几个:

1.clion

这是我目前在用的Linux上的编译器,它是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。
*- 它提供C及C++支持(包含C++11, libc++ 和Boost),同时也支持JavaScript, XML, HTML 和CSS 。
- 跨平台,你可在64-bit Linux,OS X 以及64-bit Windows上使用它。
- 支持GCC、clang、MinGW、Cygwin 编译器以及 GDB 调试器。
- 提供对CMake 支持:包含自动处理CMake changes和CMake targets,更新新创建的 C/C++ 档案及CMakeCache 编辑器。
- 集成了git工具,git在大多数IDE上有集成了,但是clion上的真的很好用。
- ……*

2.visual studio 2013

这个应该是广为人知的吧,就不过介绍了,在Windows上开发用的就是它,虽然有些地方不是很满意,但总体还是很满意的。

3.dev c++

这是我的c++启蒙IDE,是一个轻量级的c++IDE,麻雀虽小,五脏俱全,轻量级的开发还是可以使用的,真的很轻便。

4.其他

另外很多IDE也是支持c++的,比如NetBeans,并不是主流的,不过如果你是从java过来的,以前习惯了NetBeans也可以作为过渡使用,qtCreater是专门为qt开发而设计的,也支持c++。


【四】如何学习


我自己也是一个学习者,在这里谈论学习方法不大合适,怕会误导你,写这部分完全是为了内容的完整性考虑,学习路线可以到网上搜索一下很多(知乎上也行),以下为个人经历和拙见,仅供(初学者)参考:
一开始学习的是c语言,因为第二学期学校要开专业课,c/c++程序设计,于是假期就去图书馆借了一本《明解C语言》带回家,边看网上的教程视频边看书,边敲代码,第一次接触编程语言,还记得第一次使用dev c++在在终端打印出“hello world!”的时候,那个激动啊。然后就是照着书上的练习,一个暑假,一个一个练习敲完。等开学的时候,老师上课讲的我基本上都见过了,但是毕竟只是记住了,有些地方还是不理解。
然后也是陆陆续续看了网上的教学视频(慕课上)学习c++,找了一些小项目练手,到这个时候还在dev c++中。大二上学期,加入了学校一个工作室,工作室里面的学姐学长都很好,教会了我很多东西,在那里第一次接触了vs,以及配置编译环境的一些知识(因为要用到opencv库),在学习opencv中增进了很多对c++的理解,但到这时候为止,还是不理解面向过程和面向对象的区别,虽然面向对象的那些特征(封装、继承、派生、多态)都很熟悉了,但是就是不理解,真正理解其区别,是在大三,新加入了一个实验室,在实验室中做的是嵌入式开发,在这里接触了Linux操作系统和clion IDE,在项目的进行中也慢慢理解了面向对象的思想。我自己的理解,举个例子:都是上班,面向过程就是做公交车去,面向对象就是开私家车去。不知是否恰当。
关于学习方法,我认为最好的学习方法就是实践,随时敲代码,有些不理解的东西,敲多了就理解了。
好了,概述就这么多,下面一章将从基础开始,学习c++语言。(这一章是我后来加的,以前的笔记都在word上,为了内容完整就加了这章)。

原创粉丝点击