我定义了一个函数
show()
并内嵌在名为 ex.h
的头文件中,并在 ex.cpp
中定义了该函数。我预计这会给我一个错误,因为编译器不知道在调用 show()
函数的位置替换什么。但因为我使用的是 IDE,所以它工作得很好。怎么会发生这种事?
顺便说一句,当我尝试手动编译它时,它给了我一个错误,即使用了
show()
但未定义。
函数的定义(
之间的部分)必须放置在头文件中,除非该函数仅在单个{...}
文件中使用。.cpp
特别是,如果将内联函数的定义放入文件中,并从其他.cpp
文件调用它,则会从链接器收到.cpp
错误。"unresolved external"
通常整个内联函数都位于 .h 中 原因是编译器必须预先查看整个内联定义。 内联函数是通过直接“粘贴”发出的机器语言来编译的。