C++面经
1.头文件创建一个函数但源文件未实现该函数,会出现bug吗?
函数未被使用:编译和链接时都不报错
函数被使用:编译不报错,链接时报错(特殊情况:函数为内联函数时,编译和链接都报错)
若为模板函数(需要在头文件中声明和定义),需要在编译期进行模板实例化,会在编译期报错
2.头文件循环包含问题
- 当类/结构体仅被用作指针和引用时,不用包含完整定义,用前置声明替代头文件包含,示例如下:
1 | //A.h |
但在源文件中需要包含具体头文件
- 解决重复包含问题:使用 头文件保护宏 或 #pragma once
1 | //A.h |
- 解决依赖扩散问题:使用Pimpl解决
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Guailper的博客!
