开发环境
如前面介绍的那样,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++程序要做的就不再是如何通过基本语法或者面向对象编程去实现一项功能或者一个系统,而是学会并熟练通用编程、泛型编程,也就是说,需要考虑代码的通用性、可扩展性,以便后续可以更好的向后兼容,以及更加容易适应多平台的需求。
如果大家想好好学习C/C++的话,为了帮助大家,轻松,高效学习C语言/C++,给大家分享我收集的资源,从最零基础开始的:
编程学习视频分享:
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!
有需要的童鞋可以来到我下方交流群里面哦~