Ошибка линкера 2019 на неразрешенный символ

Программа состоит из 3 файлов. Staff.h, Staff.cpp и Source.cpp. В заголовочном файле лежит объявление класса с его полями и методами, в файле Staff.cpp лежит реализация методов и конструкторов. Source.cpp включает в себя функцию main что начинает взаимодействовать с классами. Не понимаю откуда появляется ошибка компоновщика.

Staff.h
#pragma once
class Staff
{
private:
    int x{ 10 };
    char* name;
    int age;
    bool sex;
public:
    int get_x();
    int get_age(); 
    char* get_name();
    bool get_sex();
    void set_x(int value);
    void set_name(char* value);
    void set_age(int value);
    void set_sex(bool value);
    void greet();
    //Staff();
    Staff(char* InputName, int InputAge, bool InputSex);
    Staff(Staff& source);
    //~Staff();
};
Staff.cpp
#include "Staff.h"

#include <iostream>
#pragma once
#define BLANK "==========================="
using namespace std;


int Staff::get_x()
{
    return x;
}


int Staff::get_age()
{
    return age;
}


char* Staff::get_name()
{
    return name;
}

bool Staff::get_sex()
{
    return sex;
}

void Staff::set_x(int value)
{
    x = value;
}

void Staff::set_name(char* value)
{
    name = value;
}

void Staff::set_age(int value)
{
    age = value;
}

void Staff::set_sex(bool value)
{
    sex = value;
}


void Staff::greet()
{
    cout << "Добро пожаловать, в наш магазин! Меня зовут ";
    cout << name;
    cout << " мне ";
    cout << age;
    cout << " лет и я ";
    cout << (sex ? "male" : "female") << endl;
}

Staff::Staff(char* InputName, int InputAge, bool InputSex)
{
    cout << "Constructor with arguements" << endl;
}

Staff::Staff(Staff& source)
{
    cout << "Copy Constructor" << endl;
}

Source.cpp
#include <iostream>
#include "Staff.h"
#pragma once
using namespace std;


int main()
{
    setlocale(LC_ALL, "ru");

    char first_name[7] = "George";
    char second_name[7] = "Robert";


    Staff a(first_name, 29, true);
    a.greet();

    
    system("pause");

    return 0;
}

Ответы (0 шт):