c++基础知识

C++学习笔记

有源文件.c不就够了吗?为什么要有头文件.h?

要回答这个问题,首先我们需要理解C++编译模式。

重要:理解C++编译模式 (函数声明和函数定义、符号表、链接)

首先理解下这句话:一个C++程序可以分多个cpp文件来实现。

C++ 语言支持"分别编译"(separatecompilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的 .cpp 文件里。
然后,C++的编译是相对独立的,每个cpp都可以单独的被编译(虽然可能因为有未知函数的导致无法运行)。最后要使得整个程序跑起来只需要 “链接”。
.cpp 文件里的东西都是相对独立的,在编译(compile)时不需要与其他文件互通,只需要在编译成目标文件后再与其他的目标文件做一次链接(link)就行了。比如,在文件 a.cpp 中定义了一个全局函数 "void a(){}",而在文件 b.cpp 中需要调用这个函数。即使这样,文件 a.cpp 和文件 b.cpp 并不需要相互知道对方的存在,而是可以分别地对它们进行编译,编译成目标文件之后再链接,整个程序就可以运行了。

头文件是和#include一起配合来提高效率的工具而已。

如果一个源文件中使用了很多函数,一个一个声明是很麻烦的,也考验程序员的记忆力。所以把一些函数声明放在一个头文件.h中。如果一个程序员需要使用这些函数,则通过 #include "xxx.h" 一句话就很方便可以完成多个函数的声明。

头文件里一般只写一些函数声明,不写函数实现。
为了通过#include (预编译命令:只是复制插入代码) 方便的声明多个函数。这样接下来就可以直接使用这个库的所有函数了(而不用担心有没有漏掉声明

例子:
源文件.cpp和头文件.h应该写什么?

一些小知识和使用规范

#include "xxx.h"#include <xxx.h>的区别?

系统库用<> , 用户自己写的用 ""

防止重复导入同一个头文件

#ifndef HEADER_FILE
#define HEADER_FILE

...

#endif

如何组织好 C 的头文件

c++的数组

vector和array的区别

二维数组

posted @ 2022-03-28 17:45  MaybeLL  阅读(44)  评论(0编辑  收藏  举报