Modern C++ (1)
技术部第一次培训(施工中…)
引入
C++是一种通用的高级编程语言,最初由Bjarne Stroustrup在1980年代早期作为C语言的扩展开发而来。C++语言结合了C语言的底层控制和高级语言的抽象特性,旨在提供更高级的编程工具和更大的灵活性。
C++是一种面向对象的编程语言,它支持封装、继承和多态等面向对象编程的核心概念。它还提供了诸多其他特性,如模板元编程、异常处理、运算符重载等,使得开发者能够以更高效和灵活的方式编写代码。
C++语言具有高效性和可移植性。与C语言一样,C++代码可以编译成机器码,因此具有高性能。此外,C++可以在许多平台上进行编译和运行,包括Windows、Linux、macOS等。
C++广泛应用于开发各种类型的软件,包括系统软件、应用程序、游戏、嵌入式系统等。由于其灵活性和高性能,C++常常用于对性能要求较高、对底层硬件操作较多的领域,如游戏开发、图形处理、网络编程等。
总结来说,C++是一种功能强大、灵活多样的编程语言,适用于多种开发场景,是许多程序员和软件开发者的首选语言之一。
个人见解
C++的学习曲线无疑是非常陡峭的,由于C++要兼容C,以及各种历史遗留问题,导致C++是非常复杂的。又由于C++的特性过于强大且复杂,有点既要又要的意思,让本就不简单的语言更雪上加霜。
部分同学可能在学习完C后再学C++会产生“C++也不过如此”的想法。巧了,刚开始的我也是这么认为的,不过在接触了Modern C++后才发现C++是真的学不完的,太复杂了。学校教的仅仅是开胃小菜而已。
第一个C++程序
以下是一个简单的C++程序,它的功能是在控制台输出Hello world!
|
|
拆分解释
- 注释,由前缀
//
标识。 - 预处理器编译命令
#include
。 - 编译指令
using namespace
。 - 函数头:
int main()
。 - 函数体,用
{
和}
括起。 - 使用C++的
cout
工具显示消息的语句。 - 结束
main()
函数的return
语句。
#include预处理宏命令
C++20起加入了模块机制,可以用import导入头文件,可以防止头文件被多次include导致redefinition。
import <iostream> |
不过由于目前阶段功能仍不稳定,部分编译器未提供完整支持,MSVC不清楚,gcc/g++目前是不支持的。
在示例程序中,我们使用了#include <iostream>
,C++委员会已经为我们规定好了标准库,其中包含了许多功能,我们所需要的输出流对象cout
,就位于iostream
头文件中,所以我们要包含此文件头。
#include
其实仅仅是将代码原封不动的复制过来,并不会进行语法检查。
如下
C++委员会已经为我们写好了如何通过控制台输出,原理我们目前阶段不必深究,会用即可。
我们常说的程序员会Ctrl+C,Ctrl+V就可以了,大概就是如此罢!
初学阶段程序模板
示例代码
|
在C++中,每条完整的指令都称为语句,所有的语句都以分号;
结束。注意:宏命令(带#的)除外
代码中的每个括号都要成对出现,<>[]{}()
注释
单行注释
单行注释以//
打头,行尾结束。
//实现两数相加,返回两数之和 |
多行注释
多行注释以/*
*/
包裹,以/*
开始,以*/
结束。
/* |
文档注释
文档注释
/** |
切换呈现视图
| 实现两数相加 |
基本数据类型
1byte = 8bits,一字节等于八位。
文字类
char(1byte)
表单个字符,字符需用一对单引号' '
包裹。
char cha {'a'}; |
unsigned char
std::string(dynamic)
表字符串,字符串需用一对双引号" "
包裹
std::string str {"Hello world!"}; |
数字类
整数类
short(2bytes)
unsigned short
int(4bytes)
整型,只能存储整数
unsigned int
无符号整型,只能存储非负整数
int a {-10}; |
long(4bytes)
long类型在不同系统上大小是不同的,C++委员会只规定了其至少为4字节。
unsigned long
long long(8bytes)
unsigned long long
小数类
float(4bytes)
单精度小数
double(8bytes)
双精度小数
double a {3.14}; |