在哪里宣布结构等?

时间:2010-04-05 12:37:41

标签: c++ coding-style

是否应在头文件中声明所有结构和类?如果我在源文件中声明了一个struct / class,我需要在头文件中放入什么才能在其他文件中使用它?另外,有没有资源显示C ++的一些标准实践?

2 个答案:

答案 0 :(得分:7)

是否应在头文件中声明所有结构和类?
是。编辑:但他们的实现应该在cpp文件中。有时来自C#或Java的用户没有意识到C ++中的实现可以与类声明完全分离。

如果我在源文件中声明了一个struct / class,我需要在头文件中放入什么才能在其他文件中使用它?
你不能。编译器需要在使用该类的任何翻译单元中提供类的完整声明。

此外,有没有资源显示C ++的一些标准做法?
您可以下载任意数量的开源应用程序的源代码来查看。虽然你可能会看到唯一完全一致的事情是使用标题保护,并在标题文件中保留所有声明。

答案 1 :(得分:2)

头文件的重点是声明要在其他源文件之间共享的接口。通常,人们在头文件中声明抽象类型,并根据需要在源文件中实现它们。这意味着,新实现的类型当然只对该特定源文件可用。如果您需要在多个文件中使用类型(通常是这种情况),那么您将需要使用头文件。

C++ faq通常是最佳做法的绝佳资源。