为每个抽象函数定义主体后,对VTable的不确定引用
Undefined reference to vtable after defining body for every abstract function
我有代码:testone.h:
class testOne {
virtual void a() = 0;
virtual void b() = 0;
};
testtwo.h:
#include "testOne.h"
class testTwo : public testOne{
void a() override;
void b() override;
};
testtwo.cpp:
#include "testTwo.h"
void testTwo::a() {
}
void testTwo::b() {
}
我为每个抽象功能提供了主体,但是我一直遇到此错误:
对``testtwo'vtable''
的不确定引用
为什么会发生这种情况?我该如何解决?
感谢您的帮助!
//编辑
我是这样使用的:
int main(){
testTwo *t = new testTwo();
return 0;
}
makefile:
cmake_minimum_required(VERSION 2.8)
SET( EX_PLATFORM 64 )
SET( EX_PLATFORM_NAME "x64" )
if (UNIX)
add_definitions(
-std=c++17 -g -Wall
)
endif (UNIX)
include_directories(${CMAKE_SOURCE_DIR})
add_subdirectory(backend)
add_subdirectory(common)
add_subdirectory(optimization)
add_subdirectory(common/ir)
add_subdirectory(tc)
此代码使用GCC 8.3.0编译和链接(在使用#include "testTwo.h"
中包含丢失的标头。
$ c++ main.c testTwo.cpp -o main
您的cmake文件实际上与此处的简单示例并不相关。我会开始在那里寻找。
相关文章:
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 不确定如何装饰我的C++库代码以在 C 中使用
- C++功能泄漏内存,我是C++新手,不确定如何解决
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 代码在 CodeSignal 中工作不正确。不确定这是否是我的代码缺陷
- 为什么以下代码是不确定的?
- 编译错误:"lvalue required as left operand of assignment" 不确定原因
- 误用指针会产生分段错误。我仍然不确定如何纠正它
- 我不确定为什么代码没有运行,它在编译时抛出错误,说它无法找到 PrintArray()
- 不确定出了什么问题(字符串输入)
- C++睡眠时间不确定
- 在C++中做一个场景问题,我不确定如何处理布尔和if循环
- 代码输出随机符号,我不确定出了什么问题
- 可变值变化,不确定原因
- 有没有办法让C++从 cin 中接收不确定数量的字符串?
- 尝试一次将单个字符读取到大小不确定的数组中
- 我不确定如何引用此神经网络训练方法中的权重
- 函数参数:不确定排序还是未排序?
- std::random_device如何生成不确定的随机数?
- 为每个抽象函数定义主体后,对VTable的不确定引用