我刚刚通过学习该语言的书籍完成了第一个真正的C++应用程序的工作。 这是我的理解,你的CPP源文件需要cooresponding头,但我的项目中的库之一是建立罚款与许多CPP文件,不包括cooresponding头。这个特殊的cpp实现了一个头部中的类,该头部具有不同于原始类声明的不同名称和数量的其他代码。编译没有相应头文件的cpp
cpp如何编译属于它不知道的类的函数?
这些函数的实现是否可以独立编译,并且在使用库的客户端应用程序(包括具有类声明的头文件)调用相应的成员函数时简单地调用它们?如果是这种情况,客户端应用程序引用的实现二进制文件如何? (我认为这是链接器......但我很想清除它)。
我预计答案可能会暴露出我对包含和编译过程的误解,我真的很想很好地学习C++的这个方面。谢谢!
头文件只是在文本上包含在翻译单元中。没有魔法。相反,头文件是20世纪70年代令人惊叹的原始文件。你根本不需要头文件,不是认真对待这个想法的好主意。如果您有一个翻译单元不向系统中的其他参与者提供任何功能,那么就不需要标题。一个很好的例子是一个包含你的'main'函数的小型翻译单元。 – 2012-03-27 17:08:04
看看这个SO qn关于编译和链接:http://stackoverflow.com/questions/6264249/how-does-the-compilation-linking-process-work – Sanish 2012-03-27 17:11:59