Primer 2 Лекция 3.
Class employee
Лекция 3. Конструктор и деструктор.
3.1. Создание простого конструктора.
class employee |
{ |
public: |
employee(char *, long, float); //Конструктор |
void show_employee(void); |
int change_salary(float); |
long get_id(void); |
private: |
char name [64]; |
long employee_id; |
float salary; |
}; |
highlightSyntax('cpp_70195','cpp'); В программе конструктор определяется так же, как любой другой метод класса:
employee::employee(char *name, long employee_id, float salary) |
{ |
strcpy(employee::name, name); |
employee::employee_id = employee_id; |
if (salary < 50000.0) |
employee::salary = salary; |
else // Недопустимый оклад |
employee::salary = 0.0; |
} |
highlightSyntax('cpp_45860','cpp');
Primer 1 Лекция 3.
#include <iostream>
#include <string.h>
using namespace std;
{
public:
employee(char *, long, float);
void show_employee(void);
int change_salary(float);
long get_id(void);
private:
char name [64];
long employee_id;
float salary;
};
employee::employee(char *name, long employee_id, float salary)
{
strcpy(employee::name, name);
employee::employee_id = employee_id;
if (salary < 50000.0)
employee::salary = salary;
else // Недопустимый оклад
employee::salary = 0.0;
}
void employee::show_employee(void)
{
cout << "Служащий: " << name << endl;
cout << "Номер служащего: " << employee_id << endl;
cout << "Оклад: " << salary << endl;
}
int main()
{
system("chcp 1251");
employee worker("Савин", 101, 10101.0);
worker.show_employee();
system("pause");
}
highlightSyntax('cpp_88660','cpp');
employee worker("Савин", 101, 1000.0); |
employee secretary("Нагель", 57, 20000.0); |
employee manager("Илюхин", 1022, 30000.0); |
class_name object(valuel, value2, value3);
3.2. highlightSyntax('cpp_83137','cpp'); Параметры по умолчанию и перегрузка конструкторов.
employee::employee(char *name, long employee_id, float salary = 10000.00) |
{ |
strcpy(employee::name, name); |
employee::employee_id = employee_id; |
if (salary < 50000.0) |
employee::salary = salary; |
else // Недопустимый оклад |
employee::salary = 0.0; |
} |
employee::employee(char *name, long employee_id) |
{ |
strcpy(employee::name, name); |
employee::employee_id = employee_id; |
do |
{ |
cout << "Введите оклад для " << name << " меньше $50000: "; |
cin >> employee::salary; |
} |
while (salary >= 50000.0); |
} |
Внутри определения класса программа должна указать прототипы для обоих конструкторов:
class employee |
{ |
public: |
employee (char *, long, float); // Прототипы перегруженных |
employee(char *, long); //функций |
void show_employee(void); |
int change_salary(float); |
long get_id(void); |
private: |
char name [64]; |
long employee_id; |
float salary; |
} |
#include <iostream>
#include <string.h>
using namespace std;
{
public:
employee(char *, long, float);
employee(char *, long);
int show_employee();
int change_salary(float);
long get_id();
private:
char name[64];
long employee_id;
float salary;
};
employee::employee(char *name, long employee_id, float salary)
{
strcpy(employee::name, name);
employee::employee_id = employee_id;
if (salary < 50000.0) employee::salary = salary;
else // Недопустимый оклад
employee::salary = 0.0;
}
employee::employee(char *name, long employee_id)
{
strcpy(employee::name, name);
employee::employee_id = employee_id;