所以根据下面的评论,我想确认这段代码是非法的,原因包括:
- 我们从抽象类 Employee 创建了一个对象 joe
- 由于没有定义 printCheck(),它使 HourlyEmployee 成为像 Employee 一样的抽象类。因此,我们从一个抽象类中创建了对象 joe。
?
class Employee
{
public:
Employee();
Employee(const string& theName, const string& theSsn);
string getName() const;
string getSsn() const;
double getNetPay() const;
void setName(const string& newName);
void setSsn(const string& newSsn);
void setNetPay(double newNetPay);
virtual void printCheck() const = 0;
private:
string name;
string ssn;
double netPay;
};
class HourlyEmployee : public Employee
{
public:
HourlyEmployee();
//<Some more legal member function definitions, none of which are
//pure virtual functions.>
private:
double wageRate;
double hours;
};
int main( )
{
Employee joe;
joe = HourlyEmployee();
}