《Beginning C++20 From Novice to Professional》第一章Basic Ideas

编程语言的学习不像数学,先有定义后有公理,再有定理与领域,数学我们可以理解为一个倒金字塔,由一点发散出整个理论体系。编程像一个梯形,基础部分有茫茫多的概念,上层较宽发散开来。这就导致我们很难用循序渐进的固定思路去了解programming language

为了说明问题,我们常常采用一些代码的比较与示例,至于这些代码是什么意思,我们无法递归定义,这是编程技术的特点,需要我们先拥有一些基础理解(也是工程学科的共性)

1.Modern C++

C++发明于上世纪80年代,作为一门通用语言,在设备驱动、操作系统、信息管理系统甚至游戏程序都可以见到C++的使用。书中强调了C++的性能优势,指出比其他语言要快的特点。C++11标志着C++的现代化

诸如lambda表达式、auto类型推导、range-for等等的新特性使得C++越来越跟进时代。容器、智能指针、RAII等技术替代了传统的编程方式,同时不丢掉安全的特点。C++20在C++14、C++17小缝小补的基础上又成为里程碑式的版本。C++20新特性主要包括modules、ranges、concepts

2.Standard Libraries

20章会简要介绍STL中的内容,但建议还是另找资源对STL进行学习

3.C++ Program Concepts

使用VS2022选用C++20版本即可成功运行上面这段示例代码,C++20模块已经在VS中可用

Source Files

一般.cpp/.cc/.cxx/.c++是源文件的后缀

Comments and Whitespace

第1、2、8行都是单行注释,//开头,还有一种C语言中带来的多行注释:

Standard Library Modules

第4行是导入声明,使得iostream模块中导出的功能在本文件中可用

可以看到<iostream>中导出了输入输出流的对象cin】cout等等

Functions

函数结构就不说了,编程语言多多少少都介绍过返回值、函数名、参数列表、函数体等等概念

Statements

通常翻译为语句。以分号结束的叫语句,比如示例代码中answer变量的定义。

大括号有时也是语句的一种,叫语句块statement block。比如main函数体就是一个{}

Namespaces

std::表明后面的内容属于std这个命名空间(又叫名字空间),双冒号::叫做the scope resolution operator作用域解析操作符。

main函数不能定义在namespace里,即默认属于全局命名空间,因此我们也经常看到::sth的写法,表示使用全局命名空间的某对象


代码风格、关键字等等就不讲了

Creating an Executable

这张图画的很详细,讲了从源文件到可执行程序的全过程


基础概念就提这么多,下面来看两道练习:

EXERCISES

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

+xiaowenhao+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值