我需要帮助将概念从Java翻译成C++.
在Java中,当您创建一个类并为其提供方法(函数)时,必须在该类中定义该函数,以便可以由任何可能需要的类实例正确调用它.例如,在类中,Employee您将声明并定义方法salaryRaise(int amount).每当一个Employee对象想要使用它时,它就会调用Employee.salaryRaise(i)并且Java确切知道在哪里找到它 - 在Employee类中.
在C++中,函数在.h文件中声明,然后在其他地方定义.编译器如何知道在哪里找到此方法?
这实际上是链接器的工作,而不是编译器.编译器将调用引用尚未定义的符号的函数.然后,链接器将获取不同的转换单元并按名称解析符号(即,将附加信息编码为命名空间的错位名称,参数类型......)