c – 在头文件与实现(.cpp)文件中定义构造函数
作者:互联网
我可以在类.h文件或实现文件.cpp中定义类构造函数的主体.对于特定项目中的编译器而言,这两种样式可能是相同的(对我而言,项目意味着DLL).
同样适用于任何成员函数:它们可以在头文件中定义,也可以在那里声明,然后在cpp文件中定义.
但是,我发现如果我需要在不同的项目中包含这样的类头文件(意味着最终使用头文件的代码最终在不同的DLL中),那么在头文件中实际实现会导致一些令人头疼的问题在编译时(不是在链接…我甚至没有达到这一点).
为什么?好吧,我不会详细说明,但编译器显然试图解决其他头文件等中可能定义的所有函数,迫使可怜的开发人员开始引入各种头文件等.
是不是总是最好保持头文件没有任何实现,只是将它们用于’声明’?这样可以更容易地将它们包含在多个项目中,而不必携带大量额外的垃圾.
你对此有何看法?
解决方法:
保持标头不受实现影响,除非您希望实现内联(例如,琐碎的getter / setter).当然,除非他们是模板.
我认为没有理由为构造函数做一个例外.将它们放在.cpp文件中.
标签:c,header-files,constructor 来源: https://codeday.me/bug/20190928/1827054.html