开发环境
如前面介绍的那样,c++属于一种静态的编译型语言,所以,开发环境配置过程中就需要用到对应的编译器。
c++有很多编译器可以用,gcc或gnu compiler collection是最流行的c++编译器之一。
下面是不同操作系统下的编译器安装方式。
linux
如果你使用的是linux,可能已经默认安装了gcc。
如果没有,可以通过如下命令安装:
linux下的ide可以选择codeblocks ide或eclipse cdt在linux。
macos
在mac上,你可以使用clang或gcc,两者都是免费的。
虽然gcc支持更广泛的c和c++标准,但clang在大多数情况下都能正常工作。
可以使用homebrew安装gcc:
开发工具方面,可以选择visual studio code或者xcode。
windows
在windows上有很多好的编译器。
在windows上,visual studio提供了一个c++编译器,该编译器还可以构建c语言程序。
visual studio有自己强大的、功能丰富的ide,对于任何开始使用c或c++的人或主要针对windows平台的人来说,它是一个很好的选择。
如果你想要更符合标准的编译器,gcc(mingw)也可以使用,codeblocks ide通过设置就可以满足需求。
ide方面,clang是目前比较好用的的工具,除此之外,还有一些跨平台的ide,如eclipse cdt、jetbrains clion和netbeans,它们提供了功能齐全的c和c++开发环境。
最近,visual studio code非常火热,在很多编程语言比较受欢迎,它也可用于linux和mac环境。
c++入门
语法是一种编程语言的核心,也是用c++开发的基础,就如同我们说汉语、英语一样,语法定义了c++代码的组成和理解方式。
下面看一段示例代码:
#include :这是一个头文件库,将功能导入到程序中。该命令的含义是程序从一个名的文件中导入内容,该文件代表输入和输出流。
using namespace std:指的是来自标准库(std)的对象和变量名称,通常用关键字std和运算符::来缩写。
int main ( ): 指定了一个主函数。函数是c++程序的一个重要部分,因为它们在代码中定义了一个动作,包含在括号{ }中的代码将被执行。
cout(读作see-out):是一个定义输出的对象,也就是代码中的字串,这里会输出hello world。
return 0:指示程序不返回任何东西,文本字符串将是唯一的输出。
<<:是一个用于命名对象的操作符,而;(分号冒号)则作为一行代码的结束标识。
把这些放在一起,就组成了一段完成的c++代码。
通过这段简短的代码就简单的涵盖了c++中的一些基本语法,如果不首先学会基础语法,看这段代码如同天书一样,不知道它在做什么?它有什么含义?
如果了解基本语法,就能够像看一段汉语一样轻松理解它表示什么。
基本语法只是入门的一个方面,除此之外还要对如下内容有基本的认知:
函数--一个函数是一组语句,它们共同执行一项任务,每个c++程序至少有一个函数
数组--数组是一种数据结构,用于存储固定大小的同类元素的顺序集合
字符串- 字符串是由字符组成的一维数组,以空字符'/0'结束
指针- 指针是变量,其值是其他变量的地址。指针有助于更容易地执行c++任务,有些任务没有它们就无法执行
引用--引用是一个别名,是一个已经存在的变量的另一个名字。如果一个引用被初始化为一个变量,那么这个变量的名字和引用的名字就可以交替使用来指代这个变量
类和对象--类是c++的一个关键特征,通过将数据表示和操作该数据的方法结合到一个包中来指定一个对象的形式
多态--多态意味着有多种形式。在c++中,这指的是调用一个数值函数导致不同的函数被执行,这取决于调用该函数的对象的类型
c++实战
在入门c++并学习了一些c++编程技巧后,接下来需要做的就是把它们好好利用起来了,在实战中打磨并熟练c++。
做到这一点的一个方法是通过做一个项目来了解该语言的各个方面是如何结合起来的。
目前github上有很多相关的项目,我们可以通过阅读相关的代码,理解它的实现过程,然后自己复现相关的项目来起到实战的作用。
也可以根据自己感兴趣的领域,给你寻找一些相关的需求场景,然后通过c++实现相应的工具或者软件。
例如,开发一款简单的小游戏、实现一个文献翻译工具、开发一个简易的计算器等等。
c++进阶
中级和高级c++编程建立在基础知识之上。
《c++ crash course》一书的作者lospinoso说,在中级阶段,程序员需要了解引用和指针如何工作。支撑最强大的c++功能的其他核心概念,例如,对象生命周期和多态。
对这些概念如何理解、如何使用,以及如何高效的应用于项目中,则是走上进阶路线上必须学会的。
在进阶之路上,一个c++程序要做的就不再是如何通过基本语法或者面向对象编程去实现一项功能或者一个系统,而是学会并熟练通用编程、泛型编程,也就是说,需要考虑代码的通用性、可扩展性,以便后续可以更好的向后兼容,以及更加容易适应多平台的需求。
典型的反馈控制器和PID控制器算法原理解析
NV080C语音芯片在可燃气体检测仪上的应用
为什么会有工频干扰_工频干扰产生原因及解决方案
智慧景区已成为了物联网产业的发展新商机
人工智能推动其数字化转型,软件开发将发生巨大变化
不同操作系统下的编译器安装方式
恩智浦与峰力联合研发出新型超低功耗无线通讯技术
Xilinx Vivado创建MicroBlaze工程运行Hello World C语言程序
linux内核无法启动
达成和解,苹果和Corellium法律纠纷宣告落幕
工业物联网品牌一般都有哪些功能及特征
语音识别在中国成身份认证的新方式
互联网中最基础的漏斗分析具体逻辑
西班牙5G频谱拍卖,是5G 2018-2020国家计划
GSM占用频段
苏宁牵手海外大牌打造全球优质供应链携手共建架设全球化贸易桥梁
基于RFID技术的游乐场馆室内人员定位系统
屏幕指纹触控技术将成为智能手机发展的大趋势
笔记本噪音烦躁 看我如何收拾它!
人机协同战略深度诠释,4大业务领域全新亮相