C + + 中未定义的引用/未解析的外部符号错误是什么?

顾名思义,您声明的符号不是您定义的。由于许多情况,可能会发生这种情况。让我们看看其中的三个-

  • 您忘记定义声明的名称。例如,您在文件中声明了一个函数并在某处使用了它。但是您没有提供其定义。代码-

#include<iostream>

void foo();

int main() {

   foo(); //声明但未定义

}

  • 您已定义它,但未使用限定名称。假设您使用方法创建了一个类并定义了该方法,但是忘记了使用作用域解析将该功能链接到该定义并在某处使用了该功能。例如,

#include<iostream>

class A {

   void foo();

};

void foo() { } // should have used A::foo

int main() {

   A a;

   a.foo(); // Not defined!

}

  • 您没有以不正确的顺序包含依赖性。链接器尝试按您指定的顺序链接到它。因此,如果在定义之前使用方法,则可能会出现此错误。


以上是 C + + 中未定义的引用/未解析的外部符号错误是什么? 的全部内容, 来源链接: utcz.com/z/321503.html

回到顶部