zoukankan      html  css  js  c++  java
  • QT中C++出现error: undefined reference to `vtable for Identity'

    以下是代码:

    class Identity{
    public:
        string m_Name;//姓名
        string m_Pwd;//密码
    
        virtual void showSubMenu();//不同身份的子菜单
    };
    class Student{
    public:
      virtual void showSubMenu();
    };
    void myLogIn(string filename, int type)
    {
        //创建父类指针——注意不是创建父类对象,而是创建父类的指针或引用
        Identity m_identity;
    }

    编译出错:

    H:Project36_reservation_systemidentity.h:5: error: undefined reference to `vtable for Identity'

    分析解决:

    父类的虚函数表没有指向子类的本应该有的虚函数表,原因是在这里创建了一个父类的对象,而父类是抽象类,无法初始化对象,解决办法是创建一个父类的指针或者引用,即Identity *m_identity。

    且父类中的虚函数要么【空实现】,要么让其【=0】。

  • 相关阅读:
    切片 Slice
    表单与v-model
    vue-内置指令
    go单元测试
    go异常处理
    设计模式
    django数据库事务
    go interface衍生的插件化处理
    goroutine
    drf之序列化
  • 原文地址:https://www.cnblogs.com/BASE64/p/14356513.html
Copyright © 2011-2022 走看看