C++ 在标题中定义类是一种好的做法吗?

C++ 在标题中定义类是一种好的做法吗?,c++,C++,我已经读到在头文件中定义函数是一种糟糕的做法,但是类呢?在头文件中定义它们可以吗?除非这个类是纯模板类或其他应该内联的类,否则最好将类实现放在cpp文件中,而不是头文件中。总之,将接口放在头文件中,而将实现放在cpp文件中 附言 正如@jogojapan所说,我谈论的是类实现,而不是类定义。这是因为尽管OP谈论的是类定义,但我强烈怀疑他实际上指的是类实现 如果您希望库的用户能够使用这些类,您还想在哪里定义它们?这是几十个现有问题的重复。@jogojapan,我想您可能会认为PIMPL有点像在其他

我已经读到在头文件中定义函数是一种糟糕的做法,但是类呢?在头文件中定义它们可以吗?

除非这个类是纯模板类或其他应该内联的类,否则最好将类实现放在cpp文件中,而不是头文件中。总之,将接口放在头文件中,而将实现放在cpp文件中

附言


正如@jogojapan所说,我谈论的是类实现,而不是类定义。这是因为尽管OP谈论的是类定义,但我强烈怀疑他实际上指的是类实现

如果您希望库的用户能够使用这些类,您还想在哪里定义它们?这是几十个现有问题的重复。@jogojapan,我想您可能会认为PIMPL有点像在其他地方定义类:p@Code-前一位大师是我所说的类定义。@jogojapan那么我的回答是“是”.你说的是类的功能,而不是类的定义本身。是的,我意识到了。但我怀疑,虽然OP指的是类定义,但他实际上指的是类实现。“接口”和“实现”这两个词在这方面似乎更合适。