c++ - C++如何找到函数声明

标签 c++ methods

我需要帮助将概念从 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/

相关文章:

java - 使用数组的直方图,最终直方图中不包括 int 10

c++ - 这组运算符会导致未定义的行为吗?

visual-studio - 如何计算 visual studio 解决方案中的所有方法

javascript - 在Javascript中,在IE8中,事件中附加的对象方法保持 'window object',而不是对象本身在 'this'

java - 如何访问在 main 方法中创建的对象

c# - .Net 扩展方法(此字符串 Foo)仅部分可见

c++ - 如何比较 wstring 和 _T ("some String")?

c++ - 如何加快逐行读取 ASCII 文件的速度? (C++)

c++ - 双自由或腐败(fasttop): 0x000000000063d070 *** c++ sieve program

c++ - 为什么重载解决方案偏爱不受约束的模板功能而不是更具体的功能?