У меня есть родительский класс: сотрудник с двумя унаследованными классами: Hourly and Salary В родительском классе я перегрузил < <, поэтому он выведет все значения переменных из сотрудника. Мне нужно создать 3 новых сотрудников: 2 Hourly и 1 Salary, но мои конструкторы, похоже, работают некорректно. Программа будет компилироваться, но когда я вызываю конструктор Hourly, программа перестает работать (переполнение стека?). Вот код:Конструкторы в унаследованных классах C++
class employee
{
friend ostream& operator<<(ostream& out, const employee& emp);
public:
employee();
employee(string id, string fname, string lname, string bDate, string hDate, double pay);
~employee();
void setEmpId(string id);
string getEmpID();
void setFirstName(string name);
string getFirstName();
void setLastName(string name);
string getLastName();
void setBirthDate(string birthDate);
string getBirthDate();
void setHireDate(string hireDate);
string getHireDate();
void setPayRate(double rate);
double getPayRate();
protected:
string employee_id;
string first_name;
string last_name;
string birth_date;
string hire_date;
double pay_rate;
};
Это мой родительский класс и вот мои два наследуемые классы:
class Hourly : public employee
{
public:
Hourly(string fname, string lname, string bdate, string hdate, double rate, string id)
{
int random = rand() % 1000;
this->employee_id=id;
this->first_name=fname;
this->last_name=lname;
this->birth_date=bdate;
this->hire_date=hdate;
this->pay_rate=rate;
}
};
Зарплата класс, по существу, то же самое, как прямо сейчас. Вот где я пытаюсь создать свой почасовой работник:
employee empOne = Hourly("Brian", "Finn", "1/12/1995", "1/12/2015", 7.25, "1215");
cout << empOne;
Я знаю, что он никогда не получает мимо конструктора, потому что я пытался CO тесты и программа никогда не делает это так далеко.
Это на самом деле не свойственно принимать плагиатом ответ. – g24l