2015-12-21 39 views
-1

刚才我被编码的一些东西......一切都很顺利,直到编译器给了我这个错误:“vtable for * Class *”错误的含义是什么?

C:\Users\presgiovanni\workspace\verbaleesami\Debug/../persona.h:24: riferimento non definito a "vtable for Persona" 
main.o: nella funzione "ZN7PersonaD2Ev": 
C:\Users\presgiovanni\workspace\verbaleesami\Debug/../persona.h:25: riferimento non definito a "vtable for Persona" 
collect2.exe: error: ld returned 1 exit status 

(我很抱歉,但它是在意大利,你知道...它说“未定义参考VTABLE的假面“)

这是有意的头文件的代码(线与表示‘>>’):

#ifndef PERSONA_H_ 
#define PERSONA_H_ 


#include <iostream> 
using std::cout; 
using std::cin; 
using std::endl; 
using std::ostream; 
using std::istream; 

#include <string> 
using std::string; 

class Persona{ 
public: 
    >> Persona(){;} 
    >> virtual ~Persona() = default; 
    virtual bool login(istream&); 
    virtual ostream& print(ostream&); 
protected: 
    string nome, cognome, nickname, password; 
}; 


#endif /* PERSONA_H_ */ 

有人可以解释我发生了什么(我的工作与Eclipse)?谢谢!

回答

1

你没有提供的成员函数的定义,特别是一个你的编译器用来选择翻译单元的虚函数表存储英寸

与海湾合作委员会,这将是第一个非内联成员功能。

定义所有成员函数应该解决问题。

+0

你是男人!我忘了,因为这个班对我来说应该是一个抽象的班级,以便让你所说的成员函数初步化。只是一个愚蠢的缺乏!谢谢! – presgiovanni

相关问题