如何解决此链接错误
Posted
技术标签:
【中文标题】如何解决此链接错误【英文标题】:How to resolve this linking error 【发布时间】:2011-10-17 14:45:26 【问题描述】:我有一个 A 类,它是一个抽象基类。(C++)。现在,我有两个继承自 A 的类 B 和 C;
我在 A 中有一个虚拟析构函数; A 类中的构造函数是受保护的。 现在,在 B 和 C 的构造函数中,我已经包含了对 A 的构造函数的调用。
B::B():A()
//do something
对于 C 也是如此
C::C():A()
//do something
现在,在编译时出现链接错误。
B.obj : error LNK2019: unresolved external symbol "protected: __
thiscall A::A(void)" (??0A) referenced in function "protected: __thiscall B::B(void)" (??0B)
C.obj : error LNK2001: unresolved external symbol "protected:
__thiscall A::A(void)" (??0A@XZ)
Error.
请建议如何解决这个问题。
谢谢, 卡尔提克。
【问题讨论】:
发布完整代码。您没有向我们展示的代码中一定存在错误。 我不能:(。我不允许。 尝试构建一个最小的示例来重现您的问题。否则这里没有真正的问题。 【参考方案1】:首先,实际上没有必要显式地“调用”基类构造函数。将自动为您调用基类的默认构造函数。
其次,正如@DeadMG 已经指出的那样,您收到的错误表明您明确声明了A::A()
构造函数,但忘记定义它。
【讨论】:
【参考方案2】:这表明您在声明 A 时从未定义它的默认构造函数。
【讨论】:
@user815961:如果它“到位”,您将不会收到这些链接器错误。不,构造函数定义不是“就地”(无论您所说的“就地”是什么意思) 大家好,实际上,抽象基类(A)有一个构造函数。并将其从该抽象基类及其所有子类(B&C)中删除正在解决问题。是不是抽象基类不能有构造函数? ***.com/questions/1057221/…以上是关于如何解决此链接错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 VS2019 的开发人员命令提示符中修复此链接器错误
如何解决 Paypal 错误 - 您用于进入 PayPal 系统的链接无效。请查看链接并重试?
如何解决 React Native iOS 链接错误:: 'ReactNativeNavigation/ReactNativeNavigation.h' 文件未找到?