double arrow

Class employee. Лекция 3. Конструктор и деструктор

1

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;

1





Сейчас читают про: