如何解决此链接错误
How to resolve this linking error
我有一个类a,那是一个抽象基类(c++)。现在,我有两个类B和C,它们继承自A;
在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.
请建议如何解决这个问题。
谢谢,Karhtik .
首先,确实没有必要显式地"调用"基类构造函数。将自动为您调用基类的默认构造函数。
其次,正如@DeadMG已经指出的,您得到的错误表明您显式声明了A::A()
构造函数,但忘记了定义它。
这表明您在声明A的默认构造函数时从未定义它。
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- Visual Studio mkl_link_tool.exe链接错误
- C++ 实现模板单例类时出现链接错误
- 使用类模板的方法链接错误
- MySQL C++连接器链接错误
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 运行 C++ 单元测试时LNK2005链接错误
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 链接错误,包括我创建的相同头文件 - C++
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用标头保护的多个定义链接错误
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- 升压program_options中的链接错误
- 使用 g++ 预处理器进行替换会导致链接错误
- 在调试配置中编译工作正常,但发布会给出链接错误
- 相邻矩阵设置链接错误
- 包含常量变量并包含在多个文件中的标头的链接错误
- C++链接错误,我理解但无法解决
- 是什么导致macOS Mojave上的GoogleTest链接错误