Здравствуйте, при работе с классами столкнулся с такими ошибками E0020 и C3861,короче говоря при вызове методов класса не найден идентификатор

Вынес методы класса за класс и оставив только прототипы Прикреплю код, подскажите что не так

    #include <iostream>
using namespace std;
class BOOK
{
    string name;
    string author;
    int year;
    double price;
public:
void set(string name1, string author1, int year1, double price1);
    string get_name() const;
    string get_author() const;
    int get_year() const;
    double get_price() const;
    void input_arr(int N, BOOK* SHOP);
    void output_arr(int N, BOOK* SHOP);
    void search(int N, BOOK* SHOP);
    void delete_arr(BOOK* SHOP);
    
};
string BOOK:: get_name() const {
    //cout << goods << endl;
    return name;
}
string BOOK:: get_author() const {
    //cout << od << endl;
    return author;
}
int BOOK:: get_year() const {
    //cout << kol << endl;
    return year;
}
double BOOK:: get_price() const {
    //cout << price << endl;
    return price;
}
void BOOK:: set(string name1, string author1, int year1, double price1) {
    name = name1;
    author = author1;
    year = year1;
    price = price1;
}
    void BOOK:: input_arr(int N,BOOK *SHOP) {
        cout << "Enter the information:" << endl;


        for (int i(0); i < N; i++) {
            cout << "Name of book:";
            cin >> name;
            cout << "Author:";
            cin >> author;
            cout << "Year:";
            cin >> year;
            cout << "Price:";
            cin >> price;
            SHOP[i].set(name, author, year, price);

        }

        cout << "-----------------------------------" << endl;

    }
    void BOOK:: output_arr(int N, BOOK* SHOP) {
        for (int i(0); i < N; i++) {
            name = SHOP[i].get_name();
            author = SHOP[i].get_author();
            year = SHOP[i].get_year();
            price = SHOP[i].get_price();
            cout << endl << name << endl << author << endl << year << endl << price << endl;
        }


        cout << "---------------------------" << endl;
    }
    void BOOK::search(int N, BOOK* SHOP) {
        int search, counter = 0;
        cout << "Input a year of book: ";
        cin >> search;
        cout << "This books are released in " << search << endl;
        for (int i(0); i < N; i++) {
            if (SHOP[i].get_year() == search) {
                name = SHOP[i].get_name();
                cout << endl << name << endl;
                counter++;
            }
            else if (counter == 0 && i == N - 1) {
                cout << "None of books in this shop weren't released in " << search << endl;
                break;

            }
        }
    }
    void BOOK::delete_arr(BOOK* SHOP) {
        delete[]SHOP;
    }
  
int main()
{
    int N = 0;
    cout << "Input a number of books:";
    cin >> N;
    BOOK* SHOP = new BOOK[N];

    string name;
    string author;
    int year;
    double price; 
    // в 4 строках, которые приведены ниже происходит ошибка 
    input_arr(N, SHOP);
    output_arr(N, SHOP);
    search(N, SHOP);
    delete_arr(SHOP);
return 0;
}

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