С++ Определить класс Man, содержащий следующие компоненты: сhar* name – имя, double salary - зарплата, объект класса Date, который определяет дату рождения: class Date { int day, month, year;}; class Man { сhar* name; double salary; Date birthday;}; В конструкторе должна динамически распределяться память для хранения данных. В деструкторе эта память должна освобождаться. Не забудьте добавить конструктор копирования. Перегрузите оператор присваивания, вывода в консоль, оператор % (увеличение зарплаты на заданный процент).
Ответы
Відповідь:
Сделал практически все,я все таки надеюсь на то что вы доделаете сами
С++ code:
#include <iostream>
class Date{
private:
int day;
int month;
int year;
public:
Date();
Date(int,int,int);
int get_day();
int get_month();
int get_year();
void set_day(int);
void set_month(int);
void set_year(int);
void print_date();
};
Date::Date(){
this->day = 1;
this->month = 1;
this->year = 2000;
}
Date::Date(int day, int month, int year){
this->day = day;
this->month = month;
this->year = year;
}
int Date::get_day(){
return this->day;
}
int Date::get_month(){
return this->month;
}
int Date::get_year(){
return this->year;
}
void Date::set_day(int day){
this->day = day;
}
void Date::set_month(int month){
this->month = month;
}
void Date::set_year(int year){
this->year = year;
}
void Date::print_date(){
std::cout << this->day << "." << this->month << "." << this->year << std::endl;
}
class Man{
private:
char *name;
double salary;
Date birthday;
public:
Man();
Man(char,double,Date);
~Man();
Man(Man &);
void operator = (Man &);
void operator % (Man &);
friend std::istream& operator>> (std::istream& in, Man& obj) {
friend std::ostream& operator<< (std::ostream& out, const Man& obj);
};
Man::Man(){
this->name = new char[20];
this->salary = 0;
}
Man::~Man(){
delete[] name;
}
Man::Man(Man &other){
for(int i = 0; i < 20; i++){
this->name[i] = other.name[i];
}
this->salary = other.salary;
this->birthday.set_day(other.birthday.get_day());
this->birthday.set_month(other.birthday.get_month());
this->birthday.set_year(other.birthday.get_year());
}
void Man::operator =(Man &object){
for(int i = 0; i < 20; i++){
this->name[i] = object.name[i];
}
this->salary = object.salary;
this->birthday.set_day(object.birthday.get_day());
this->birthday.set_month(object.birthday.get_month());
this->birthday.set_year(object.birthday.get_year());
}
int main(){
return 0;
}