我是C ++的新手,并开始像大多数人一样组织我的代码:在“头文件”和“源文件”中。
我在包含内联函数的所有头文件中使用#pragma once
。但我想知道是否有理由反对在每个头文件中使用它?
答案 0 :(得分:5)
我在所有包含内联函数的头文件中使用#pragma一次
这就是不需要#pragma一次的原因之一。对同一内联函数有多个定义是正常的和预期的。当多个翻译单元#include相同的标题时,尤其是模板函数,这是不可避免的。如果编译器实际上没有内联函数,链接器只选择它找到的一个定义。您需要#pragma一次以避免同一类型的多个定义。