未定义引用'vtable for classname'

时间:2011-09-07 12:58:24

标签: c++ linker-errors

  

可能重复:
  Undefined reference to vtable

我在该文件上有一个班级学生 - student.h 这是它的构造函数:

class Student
{
protected:
  double _id;
  double _salary;
  double _grade_average;

public:
    Student(double id, double salary,double average):
        _id(id),_salary(salary),_grade_average(average)
    {}
};

然后我收到错误:

  

对'vtable for Student'的未定义引用

有什么问题?

这是一个University.h文件:

 #include "Student.h"
class University : public Student
{
public:
  virtual double getValue();
  University(char university_id,double id, double average,double salary):
    _university_id(university_id),Student(id,average,salary)
  {
  }

private:
  char _university_id;
  static double how_many;
  static double sum_avg_grades;
};

1 个答案:

答案 0 :(得分:2)

有几件事。

  1. 在变量名后添加下划线。作为开头的名字 编译器可以使用下划线。
  2. 如果您计划,请务必定义至少一个虚拟功能 从它继承或使用RTTI。 (例如虚拟析构函数)
  3. 确保每个声明的函数都有对应的函数 实施