我是C ++的初学者。查看以下代码:
// in myclass.h
class MyClass
{
public:
void foo();
int bar;
};
// in myclass.cpp
#include "myclass.h"
void MyClass::foo()
{
// does something
}
//in main.cpp
#include "myclass.h" // defines MyClass
int main()
{
MyClass a;
return 0;
}
据我所知,为了使接口与实现分离,源代码文件main.cpp
包括头文件myclass.h
;后者包含类MyClass
中方法的属性和原型,但不包含由myclass.cpp
包含的那些方法的实现。反过来myclass.cpp is
包括myclass.h
。
有人能解释一下编译器如何将头文件中包含的原型与其实际实现相关联?
在这种特殊情况下,我问myclass.h
与myclass.cpp
的关联方式。