cpp抽象类

时间:2016-11-17 13:39:46

标签: c++ abstract-class

我收到错误

  

错误:无法分配抽象类型'myClass'的对象

我制作了一个小样本来证明我的错误。 下面是代码。 (包括和#ifndef东西不包括在内)

  

person.h

class Person{
    public:
            virtual std::string getRole() = 0;
};
  

employee.h

class Employee:public Person{
    std::string getRole();
};
  

workplace.h

class Workplace{
    public:
            void  setPeople(std::vector<Person> p);

    private:
            std::vector<Person> people;
};
  

workplace.cpp

void Workplace::setPeople(std::vector<Person> p){
    people = p;
}
  

employee.cpp

std::string Employee::getRole(){
    return "Generic Employee";
}

我从这个例子中得到的错误是:

  

/usr/lib/gcc/x86_64-redhat-linux/4.4.7 /../../../../ include / c ++ / 4.4.7 / bits / stl_construct.h:80:错误:无法分配抽象类型'Person'的对象   person.h:7:注意:因为以下虚函数在'Person'中是纯粹的:   person.h:9:注意:virtual std :: string Person :: getRole()

提前致谢。

0 个答案:

没有答案