【如何系统地学习 C++ 语言】从开发环境到C++进阶,应该怎么办?

点击蓝字

eec19ab8c50812ee8b903769d1ce3db9.png

关注我们

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享

来源于网络,侵删

开发环境

如前面介绍的那样,C++属于一种静态的编译型语言,所以,开发环境配置过程中就需要用到对应的编译器。

C++有很多编译器可以用,GCC或GNU Compiler Collection是最流行的C++编译器之一。

下面是不同操作系统下的编译器安装方式。

6ec8db1d3e9b40028520416e829b56e1.png

Linux

如果你使用的是Linux,可能已经默认安装了GCC。

如果没有,可以通过如下命令安装:

cace7e6513bb4788657482c27e6d163b.png

Linux下的IDE可以选择Codeblocks IDE或Eclipse CDT在Linux。

macOS

在Mac上,你可以使用Clang或GCC,两者都是免费的。

虽然GCC支持更广泛的C和C++标准,但Clang在大多数情况下都能正常工作。

可以使用Homebrew安装GCC:

af30a6096d89ced46c48df7d780a857d.png

开发工具方面,可以选择Visual Studio Code或者Xcode。

Windows

在Windows上有很多好的编译器。

在Windows上,Visual Studio提供了一个C++编译器,该编译器还可以构建C语言程序。

Visual Studio有自己强大的、功能丰富的IDE,对于任何开始使用C或C++的人或主要针对Windows平台的人来说,它是一个很好的选择。

c28ba54d05ce4c81377957875acb5138.png

如果你想要更符合标准的编译器,GCC(MinGW)也可以使用,Codeblocks IDE通过设置就可以满足需求。

IDE方面,Clang是目前比较好用的的工具,除此之外,还有一些跨平台的IDE,如Eclipse CDT、Jetbrains CLion和Netbeans,它们提供了功能齐全的C和C++开发环境。

最近,Visual Studio Code非常火热,在很多编程语言比较受欢迎,它也可用于Linux和Mac环境。

C++入门

语法是一种编程语言的核心,也是用C++开发的基础,就如同我们说汉语、英语一样,语法定义了C++代码的组成和理解方式。

下面看一段示例代码:

9558c4d269449b9ec8cfb80ae54b84fd.png

#include :这是一个头文件库,将功能导入到程序中。该命令的含义是程序从一个名的文件中导入内容,该文件代表输入和输出流。

using namespace std:指的是来自标准库(std)的对象和变量名称,通常用关键字std和运算符::来缩写。

int main ( ): 指定了一个主函数。函数是C++程序的一个重要部分,因为它们在代码中定义了一个动作,包含在括号{ }中的代码将被执行。

cout(读作see-out):是一个定义输出的对象,也就是代码中的字串,这里会输出Hello World。

return 0:指示程序不返回任何东西,文本字符串将是唯一的输出。

<<:是一个用于命名对象的操作符,而;(分号冒号)则作为一行代码的结束标识。

把这些放在一起,就组成了一段完成的C++代码。

通过这段简短的代码就简单的涵盖了C++中的一些基本语法,如果不首先学会基础语法,看这段代码如同天书一样,不知道它在做什么?它有什么含义?

如果了解基本语法,就能够像看一段汉语一样轻松理解它表示什么。

基本语法只是入门的一个方面,除此之外还要对如下内容有基本的认知:

函数--一个函数是一组语句,它们共同执行一项任务,每个C++程序至少有一个函数

数组--数组是一种数据结构,用于存储固定大小的同类元素的顺序集合

字符串- 字符串是由字符组成的一维数组,以空字符'/0'结束

指针- 指针是变量,其值是其他变量的地址。指针有助于更容易地执行C++任务,有些任务没有它们就无法执行

引用--引用是一个别名,是一个已经存在的变量的另一个名字。如果一个引用被初始化为一个变量,那么这个变量的名字和引用的名字就可以交替使用来指代这个变量

类和对象--类是C++的一个关键特征,通过将数据表示和操作该数据的方法结合到一个包中来指定一个对象的形式

多态--多态意味着有多种形式。在C++中,这指的是调用一个数值函数导致不同的函数被执行,这取决于调用该函数的对象的类型

39f42532b896deff55f2e25b5713633f.png

C++实战

在入门C++并学习了一些C++编程技巧后,接下来需要做的就是把它们好好利用起来了,在实战中打磨并熟练C++。

做到这一点的一个方法是通过做一个项目来了解该语言的各个方面是如何结合起来的。

目前Github上有很多相关的项目,我们可以通过阅读相关的代码,理解它的实现过程,然后自己复现相关的项目来起到实战的作用。

也可以根据自己感兴趣的领域,给你寻找一些相关的需求场景,然后通过C++实现相应的工具或者软件。

例如,开发一款简单的小游戏、实现一个文献翻译工具、开发一个简易的计算器等等。

C++进阶

中级和高级C++编程建立在基础知识之上。

《C++ Crash Course》一书的作者Lospinoso说,在中级阶段,程序员需要了解引用和指针如何工作。支撑最强大的C++功能的其他核心概念,例如,对象生命周期和多态。

对这些概念如何理解、如何使用,以及如何高效的应用于项目中,则是走上进阶路线上必须学会的。

在进阶之路上,一个C++程序要做的就不再是如何通过基本语法或者面向对象编程去实现一项功能或者一个系统,而是学会并熟练通用编程、泛型编程,也就是说,需要考虑代码的通用性、可扩展性,以便后续可以更好的向后兼容,以及更加容易适应多平台的需求。

b508d2374b0914858bc93eb39808ebc5.gif

如果你年满18周岁以上,又觉得学【C语言】太难?想尝试其他编程语言,那么我推荐你学Python,现有价值499元Python零基础课程限时免费领取,限10个名额!
▲扫描二维码-免费领取

戳“阅读原文”我们一起进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高度可定制化的方案_如何开发高度可定制的产品

高度可定制化的方案您是否听说过&#xff1a;“我们非常喜欢您的产品……除了一些小细节。”&#xff1f; 然后&#xff0c;CIO推出了一系列其他“必备”要求的清单&#xff0c;其中有数百个要添加到您的惊人产品中。 您是否听说过&#xff0c;甚至说过&#xff1a;“团队&…

文言文编程?厉害了程序员!

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删你能看出来&#xff0c;这首诗妙在哪里吗&#xff1f;来源&#xff1a;量子位&#xff08;ID&#xff1a;QbitAI&#xff09;&#xff0c;梦晨 萧…

sublime快捷键代码对齐_Python配置sublime运行环境

1、下载安装python和sublime&#xff0c;不再赘述&#xff0c;官网即可下载&#xff1b;2、打开subilme&#xff0c;打开Tools > Build System > New Build System..3、点击New Build System后&#xff0c;会生成一个空配置文件&#xff0c;在这个配置文件内覆盖配置信息…

C语言贪心算法

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删01基本概念贪心算法是指在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;…

C++最佳实践 | 可维护性

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删C最佳实践:1. 工具2. 代码风格3. 安全性4. 可维护性&#xff08;本文&#xff09;5. 可移植性及多线程6. 性能7. 正确性和脚本可维护性避免使用编…

springboot启动自动关闭_App自动化测试用例格式和App的启动与关闭

【一】基本的用例格式这里使用unittest测试框架来编写用例。注&#xff1a;unittest可以提供用例的组织和管理、预期结果验证、批量化运行、产生测试报告等功能。新建一个calculator的python package&#xff0c;新建一个calculator_test.py&#xff0c;导入以下包。按照标准的…

C++最佳实践 | 可移植性及多线程

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删C最佳实践:1. 工具2. 代码风格3. 安全性4. 可维护性5. 可移植性及多线程&#xff08;本文&#xff09;6. 性能7. 正确性和脚本可移植性明确使用的…

eap aka_使用API​​密钥(aka身份验证令牌)部署到Maven Central

eap aka如何在不使用未加密本地密码的情况下与Maven Central / Nexus通信&#xff08;尤其是使用Gradle&#xff0c;但不仅限于此&#xff09;。 基本原理 不幸的是&#xff0c;Gradle&#xff08;和许多其他构建工具&#xff09;没有提供任何机制来本地加密密码&#xff08;或…

万维网发布服务 w3svc 已停止 除非万维_万维网和互联网的区别

常见的一个误解是&#xff0c;人们认为互联网(Internet,也叫因特网)和万维网(World Wide Web)是同样的事物。一些词语如“互联网”、“万维网”&#xff0c;“网”和“网络”经常可以交替使用。但是&#xff0c;从技术的角度来说&#xff0c;“互联网”和“万维网”是两个独立的…

C/C++项目开发:通讯录管理系统源码,C语言链表实现

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删hello&#xff0c;各位小伙伴们大家好&#xff01;你们今天有敲代码嘛&#xff1f;如果有熟悉的小伙伴看到我&#xff0c;就知道又可以来学习源码…

javafx窗体程序_JavaFX真实世界应用程序:欧洲电视网广播联盟

javafx窗体程序我荣幸地与今年在德累斯顿Saxonia 系统公司工作的Alexander Casall一起在JavaOne上展示了多个JavaFX Real-World应用程序。 在准备本次演讲时&#xff0c;我们向客户和合作伙伴发送了一份调查表&#xff0c;并向他们询问了一些与他们的项目&#xff0c;他们的应用…

spring 数据库 链接db2_Druid,Java语言中最好的数据库连接池

Druid是Java语言中最好的数据库连接池&#xff0c;这话不是我说的&#xff0c;是Druid官方文档自己这样描述的&#xff0c;这是何等的自信&#xff01;连接池的作用&#xff0c;跟线程池的作用大同小异&#xff0c;都是为了减少频繁的创建销毁连接IO&#xff0c;提升性能。drui…

编程知识:既然已经有数组了,为什么还要链表?

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删对于不少开发者而言&#xff0c;链表(linked list)这种数据结构既熟悉又陌生&#xff0c;熟悉是因为它确实是非常基础的数据结构&#xff0c;陌生…

jcache_随机JCache内容:多个提供程序和JMX Bean

jcacheJCache&#xff08;JSR 107&#xff09;是用于缓存的Java标准…足够了。 没有更多介绍性的东西。 这是一则速成文章&#xff0c;内容涉及 多个JCache提供程序配置&#xff0c;以及 功能&#xff1a;通过JMX Mbeans的JCache统计信息 管理多个JCache提供程序 如果您只使…

python webbrowser点击_用 Python 实现手机自动答题,这下百万答题游戏谁也玩不过我!...

引言如果谈到这几年手机上各平台最常见的引流福利&#xff0c;必然是答题赢大奖系列小游戏了。像什么头号英雄&#xff0c;百万玩家之类的&#xff0c;充斥在我们生活中&#xff0c;同时也成为了我们生活中常见的娱乐方式。但是有时候就会想&#xff0c;能不能实现手机自动答题…

程序员的年终总结,各种版本各种残

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删朱自清版这几天心里颇不宁静了&#xff0c;眼看上线的日子越来越临近&#xff0c;而项目Bug之多&#xff0c;密密的交叉着&#xff0c;却无从改起…

securecrt哪个版本好用_电脑跑分测试软件哪个好?好用的电脑跑分软件推荐

想要直观的了解自己电脑状况&#xff0c;那么一款好用的电脑跑分软件无疑是必不可少的&#xff0c;毕竟他能够将测试结果用跑分的形式计算出来。那么&#xff0c;电脑跑分软件哪个比较好呢&#xff1f;下面是小编分享的好用的电脑跑分软件推荐&#xff0c;游戏玩家们可不要错过…

C语言,单片机绕不过的坎,你对C语言内存分配了解多少呢

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删一、static在C语言里面可以用来修饰变量&#xff0c;也可以用来修饰函数。1、 先看用来修饰变量的时候。变量在C语言里面可分为存在全局数据区、…

内存 增量数据持久_内存中数据模型和大数据持久性

内存 增量数据持久ORM框架在需要与关系数据库进行交互时可以帮助开发人员。 对于关系数据库&#xff0c;有许多出色的ORM框架&#xff0c;例如Hibernate和Apache OpenJPA&#xff0c;其中一些确实很棒。 如今&#xff0c;大数据正在涌现&#xff0c;越来越多的人开发在大数据上…

自学编程的6个技巧总结

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删有一天&#xff0c;我的一个在学编程的朋友问我&#xff1a;“我想快速学习编程&#xff0c;你有什么好的推荐吗&#xff1f;”我曾在上大学的时…