Ошибка линкера 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;
}