是否应在头文件中声明所有结构和类?如果我在源文件中声明了一个struct / class,我需要在头文件中放入什么才能在其他文件中使用它?另外,有没有资源显示C ++的一些标准实践?
答案 0 :(得分:7)
是否应在头文件中声明所有结构和类?
是。编辑:但他们的实现应该在cpp文件中。有时来自C#或Java的用户没有意识到C ++中的实现可以与类声明完全分离。
如果我在源文件中声明了一个struct / class,我需要在头文件中放入什么才能在其他文件中使用它?
你不能。编译器需要在使用该类的任何翻译单元中提供类的完整声明。
此外,有没有资源显示C ++的一些标准做法?
您可以下载任意数量的开源应用程序的源代码来查看。虽然你可能会看到唯一完全一致的事情是使用标题保护,并在标题文件中保留所有声明。
答案 1 :(得分:2)
头文件的重点是声明要在其他源文件之间共享的接口。通常,人们在头文件中声明抽象类型,并根据需要在源文件中实现它们。这意味着,新实现的类型当然只对该特定源文件可用。如果您需要在多个文件中使用类型(通常是这种情况),那么您将需要使用头文件。
C++ faq通常是最佳做法的绝佳资源。