【发布时间】:2011-01-21 17:26:13
【问题描述】:
我可以在类.h 文件或实现文件.cpp 中定义类构造函数的主体。就特定项目中的编译器而言,这两种风格可能是相同的(对我来说,项目意味着 DLL)。 这同样适用于任何成员函数:它们可以在头文件中定义,也可以在头文件中声明,然后在 cpp 文件中定义。
但是,我发现如果我需要在不同的项目中包含这样的类头文件(这意味着最终使用头文件的代码最终会出现在不同的 DLL 中)然后有头文件中的实际实现在编译时会引起一些麻烦(而不是在链接时......我什至没有达到这一点)。 为什么?好吧,我不会详细说明,但编译器显然会尝试解析可能在其他头文件等中定义的所有函数,从而迫使可怜的开发人员开始拉入各种头文件等。
保持头文件没有任何实现并仅将它们用于“声明”不是总是最好的吗?这将使它们更容易包含在多个项目中,而不必携带大量额外的垃圾。
您对此有何看法?
【问题讨论】:
标签: c++ constructor header-files