C++20高级编程

第一章 C++和标准库速成

C++速成

小程序”Hello World”

主要是接触引入模块的概念,程序如下:

1
2
3
4
5
6
7
8
9
// hello.cpp
import <iostream>; // 引入模块,目前的gcc不支持
// #include <iostream>

int main() {
std::cout << "hello world" << std::endl;

return 0;
}

但是由于目前的gcc不支持引入模块,所以会报错,我们可以尝试一下,输入如下命令:

其中-fmodules-ts表示开启模块支持

1
g++ hello.cpp -std=c++20 -fmodules-ts

但是很遗憾,目前的gcc不支持,所以会报错:

image-20231115171602184

引入模块确实是个不错的选择,后续C++可能就会有自己的包管理器了,C++是世界上最好的语言.py

这里我们替换为头文件即可

关于模块和头文件

在引入模块之前,C++对于封装通常是函数的声明放在.h文件中,函数的定义(实现)放在.cpp文件中,这样进行管理;但是有了模块之后,就不需要进行声明和定义的分离了(但是现在我的编译器不支持我还没办法看到实例…)

关于在C++中使用C标准库的头文件,注意:

  • 不适用.h后缀,而改为前缀c,例如< stdio.h >改为使用< cstdio >

    为什么呢?在C++中所有的头文件的内容都是放在标准的命名空间std当中的,这样做是为了防止用户的命名和系统的命名发生冲突,同时也是对标准库的封装做了隔离和保护,使用c开头的头文件,这些内容都是在std中的,而.h就没有

  • import引入模块可能并不支持C标准的头文件,所以还是先用#include

一些预处理命令

如下,主要就#include#define#ifdef#ifndef#endif#pragma这几个

image-20231115172651618 image-20231115172659405

后续

TODO

使用搜索:必应百度