したがって、以下のコメントに基づいて、次のような理由でこのコードが違法であることを確認したいと思います。
- 抽象クラス 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();
}