绫濑川:C++编译和LINK问题,高手请指教

来源:百度文库 编辑:高校问答 时间:2024/05/04 16:52:26
现一个类A中,有一个inline的函数B。
先前函数B定义在.cpp文件中。但是调用这个B函数的时候,编译时没有错误(说明函数类型正确),但是LINK时候出现unresolved external symbol '..' referenced in function _main (说是符号找不到)

后来用网上的方法,将这个函数B的定义放在.h文件中,LINK就通过了

请高手指教为什么?

这是C语言结构问题.

如果被调用的子程序(函数)出现在主函数main()之后,
C语言结构要求在main()之前应当有子程序(函数)的原型声明(就是所谓的"prototype").

如果不想写原型声明句,你就要让这个子程序(函数)出现在main()之前.

出现在main()之前,你可以直接写在main前面,也可以写到头文件里.头文件编译时将被嵌入头文件所在行,也就自动在main()之前了.

C语言子程序调用的检查是在链接时做的.不是在编译成obj时做的.

看看程序就知道了