缺少vtable错误,提示我尚未定义虚拟函数

问题描述

我在实例化类时遇到了一些问题,并出现一个错误,告诉我我尚未在类中定义虚拟函数。不过,我有点困惑,因为我只有1个虚函数(总共一个函数),并且已经定义了它。这些都是通过父类Renderer.hpp继承的:

#pragma once
#include "LifeSimulator.hpp"
#include "rlutil.h"
class Renderer
{
public:
    virtual void render(const LifeSimulator& simulation) = 0;
};

接下来继承的是RendererConsole.hpp:

#pragma once
#include "Renderer.hpp"

class RendererConsole : public Renderer
{
public:
    virtual void render(const LifeSimulator& simulation) override;
};

,然后在RendererConsole.cpp中定义:

#include "LifeSimulator.hpp"
#include "RendererConsole.hpp"


void render(const LifeSimulator& simulation){
    rlutil::cls();
    rlutil::hidecursor();
    for (int i = 0; i<simulation.getSizeY(); i++){
        for (int j = 0; j < simulation.getSizeX(); j++) {
            if (simulation.getCell(i,j) == true) {
                rlutil::locate(i,j);
                rlutil::setColor(5);
                rlutil::setChar('*');
            }
        }
        std::cout<<"\n";
    }
    rlutil::showcursor();
}

我的main.cpp文件中的错误来自此行

Renderer* renderer = new RendererConsole();

我确定错误很简单,但是我似乎无法弄清楚我做错了什么。感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)