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】。

  • 相关阅读:
    人月神话2
    cJson 常见用法
    Python C扩展
    动态链接--运行时加载dlopen
    mtrace 简介
    Linux coredump
    动态链接--so的搜索过程
    线程同步--条件变量
    编译过程学习
    Linux 信号
  • 原文地址:https://www.cnblogs.com/BASE64/p/14356513.html
Copyright © 2011-2022 走看看