В предыдущем классе employee функция была определена внутри самого класса (встроенная (inline) функция). При увеличении функций определение встроенных функций внутри класса может внести беспорядок в описание класса. В качестве альтернативы вы можете поместить прототип функции внутри класса, а затем определить функцию вне класса. Ваше определение класса с прототипом становится следующим:
class employee
{
public:
char name[64];
long employee_id;
float salary;
void show_employee(void); |————————> Прототип функции
};
Так как разные классы могут использовать функции с одинаковыми именами, вы должны предварять имена определяемых вне класса функций именем класса и оператором глобального разрешения (::). В данном случае определение функции становится следующим:
void employee:: show_employee (void) //-------------->Имя класса
{
сout << "Имя: " << name << endl; Имя элемента cout << "Номер служащего: " << employee_id << endl;
cout << "Оклад: " << salary << endl;
};
Как видите, приведенный код предваряется определением функции с именем класса (employee) и оператором глобального разрешения (::). Следующая программа CLASSFUN.CPP помещает определение функции show_employee вне класса, используя оператор глобального разрешения для указания имени класса:
#include <iostream.h>
#include <string.h>
class employee
{
public:
char name [64];
long employee_id;
float salary;
void show_employee(void);
};
void employee::show_employee(void)
{
cout << "Имя: " << name << endl;
cout << "Номер служащего: " << employee_id << endl;
cout << "Оклад: " << salary << endl;