Vla*_*adp 1 c++ header include forward-declaration
当您包含一些文件时发生了什么,而当您向前声明某些函数/类时发生了什么?如果两个文件包含相同文件,则第一个文件将成功读取所有功能,第二个文件将失败,但仍能够使用这些功能?
当我向前声明一些功能时会发生什么?该功能现在“保存”了吗,我可以在任何地方使用它,或者仅在同一文件中知道它?那为什么两个带有include(到带有守卫的文件)的文件将起作用?
我可以将所有内容都包含在主体中而不再打扰吗?
编辑:
以及为什么cpp文件应包含其标题?如果我不包括这些怎么办?
当您包含一些文件时发生了什么,而当您向前声明某些函数/类时发生了什么?
包含文件时,预处理器会将其内容“复制并粘贴”到包含源中。当您向前声明一个函数/类时,您是在声明一个不完整的类型,让翻译单元的其余部分知道存在具有该名称的函数/类,并使其在允许不完整声明的上下文中可用。
如果两个文件包含相同文件,则第一个文件将成功读取所有功能,第二个文件将失败,但仍能够使用这些功能?
如果包含文件包含适当的包含保护,则同一翻译单元中的第二个包含实际上将是无操作的。如果两个不同的源文件包含相同的头文件,则全部内容将包含在两个文件中。
当我向前声明一些功能时会发生什么?该功能现在“保存”了吗,我可以在任何地方使用它,或者仅在同一文件中知道它?那为什么两个带有include(到带有守卫的文件)的文件将起作用?
该函数只能在包含前向声明的转换单元中使用。通常,每个源文件(.cpp)是一个不同的转换单元,宏定义(标头保护符的那些)以及声明/定义在该转换单元内有效。标头保护符可防止同一头文件在同一转换单元中被多次包含,以防止出现多个声明错误。
| 归档时间: |
|
| 查看次数: |
2763 次 |
| 最近记录: |