我需要帮助将概念从 Java 转换为 C++。
在 Java 中,当您创建一个类并为其提供方法(函数)时,您必须在该类中定义该函数,以便它可以被任何可能需要的类实例正确调用。
例如,在 Employee
类中,您将声明并定义方法 salaryRaise(int amount)
。
每当 Employee
对象想要使用它时,它都会调用 Employee.salaryRaise(i)
并且 Java 知道在哪里找到它 - 在 Employee
类。
在 C++ 中,函数在 .h
文件中声明,然后在其他地方定义。
编译器如何知道在哪里可以找到这个方法?
最佳答案
这实际上是链接器的工作,而不是编译器。编译器将调用引用尚 undefined symbol 的函数。然后,链接器将获取不同的翻译单元并按名称解析符号(即,将附加信息编码为 namespace 、参数类型的错位名称……)
关于c++ - C++如何找到函数声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19551187/