0

уважаемые программисты! Не могу решить проблему, т.к с классами не работал еще, пытаюсь разобраться. Не могу создать массив объектов класса. Мне нужно сделать записи для массива. Если бы с этим разобрался, думаю, функции кое-как сам бы добил.. Спасибо заранее Сам текст задания:

Описать класс «Работник». Каждая запись содержит фамилия и инициалы, должность, год поступления на работу, зарплата. Предусмотреть возможность формирования: списка с клавиатуры и из файла, печати всего списка сотрудников; списка работников, стаж работы которых на данном предприятии превышает заданное число лет; списка работников, зарплата которых больше заданной; списка работников, занимающих заданную должность.

 #include <iostream>
    #include <conio.h>
    #include <cstring>
    #include <stdio.h>
    #include <stdlib.h>


using namespace std;

class Worker {
    public:
        Worker();
        Worker(string , string , string , int , double );   
void printListEmployees() const; // Печать списка работников

void printListEmployeesOverYear(int); // Печать списка работников стаж которых больше заданного

void printListEmployeesOverSalary(double); // Печать списка работников зарплата которых больше заданной

void printListEmployeesThisPosition(std::string); // Печать списка работников занимающих заданную должность

            ~Worker();

    private:
    string  family;
    string  inicial;
    string  dolzh;
        int year;
        double zp;
};


/*========================== KONSTRUKTOR ==========================*/

Worker::Worker (string , string , string , int , double )
        {
            cout<<"Введите фамилию работника  "; cin>>family;
            cout<<"Введите инициалы работника  "; cin>>inicial;
            cout<<"Введите должность работника  "; cin>>dolzh;
            cout<<"Введите год поступления на работу  "; cin>>year;
            cout<<"Введите зарплату работника  "; cin>>zp;

        }
Worker::~Worker(){
            cout<<"Проверка деструктора";
}
/*========================== FUNCTION ==========================*/
пока не написано




/*========================== MAIN ==========================*/

int  main(){

        setlocale(LC_ALL, "Rus");
        Worker *a = new Worker[15]; // ВОТ ТУТ ВЫДАЕТ ОШИБКУ; ЗЫ ниже

}

C:\Users\oppi-\AppData\Local\Temp\ccyoOofr.o Безымянный1.cpp:(.text+0x5cf): >undefined reference to `Worker::Worker()' .

C:\Users\oppi-\OneDrive\Ðàáî÷èé ñòîë\ïðàòêèêà\îò÷åò\collect2.exe [Error] ld >returned 1 exit status

adam_k
  • 75
  • Попробуйте Worker *a = new Worker[15]; - если вы хотите массив из 15 объектов... – Harry May 30 '18 at 15:26
  • а, это я с текстовика копировал, потому что русские символы искажались, там квадратные, эти ошибки от квадратных скобок. Просто круглые были до последней компиляции – adam_k May 30 '18 at 15:33
  • Нет реализации конструктора по умолчанию Worker(), отсюда и ошибка. – αλεχολυτ May 30 '18 at 15:48
  • а конкретнее? мне не понятно, извините – adam_k May 30 '18 at 16:00

0 Answers0