Как определить шаблонную функцию друга класса шаблона

У меня есть шаблон класса array_T который является массивом общего назначения и функцией шаблона linear search TEMPLATE.h и его объявили другом для класса arrayTemplate.h чтобы можно было использовать функцию-член класса getArraySize() и член класса данных a который является массивом динамического размещения

arrayTemplate.h

    #ifndef arrayTemplate
    #define arrayTemplate
    #include"linear search TEMPLATE.h"
    #include<iostream>
    using namespace std;

    template <class T>
class array_T  {

private:
    T *a;
    int arraySize;

public : 
    friend void linearSearch(array_T object);

    array_T(int s) {
        arraySize = s;
        a = new T[arraySize];

        for (int i= 0; i < arraySize; ++i) {
            a[i] = 0;
        }
    }

    ~array_T() {
        delete[]a;
    }

    void setArray() {
        for (int  i=0; i < arraySize; ++i) {
            cout << "Enter the elements of the array " << endl;
            cin >> a[i];
        }
    }

    void getArray() {
        for (int  i=0; i < arraySize; ++i) {
            cout << a[i] << endl;
        }
    }

    int getArraySize() {
        return arraySize;
    }


};
#endif

линейный поиск TEMPLATE.h

#include"arrayTemplate.h"
#include<iostream>
using namespace std;

template <class T>
//void linearSearch(T desiredData, int arraySize, T *elemnts) {
void linearSearch(array_T<T> object , T desiredData) {
    int arraySize = object.getArraySize();
    int loc = -1;
    int i = 0;
    for (i = 0; i < arraySize; ++i) {

        if (object.a[i] == desiredData) {
            loc = i;
            break;
        }
    }

    if (loc > 0) {
        cout << "the Item is found at position " << i + 1 << endl;
    }
    else {
        cout << "the item is not found ";
    }

}

main.cpp

  #include"arrayTemplate.h"
   #include"linear search TEMPLATE.h"
    #include<iostream>
    using namespace std;



int main() {

    array_T<int> myArray(7);
    myArray.setArray();

    linearSearch(myArray,50)

return 0 ; 
}

это ошибки, которые я получил

шаблон линейного поиска.h(8): ошибка C2065: "массив_Т": необъявленный идентификатор

шаблон линейного поиска.h(8): ошибка C2065: "объект": необъявленный идентификатор

шаблон линейного поиска.h (8): ошибка C2275: 'T': недопустимое использование этого типа в качестве выражения

линейный поиск template.h(6): примечание: см. объявление 'T'

шаблон линейного поиска.h(8): ошибка C2146: синтаксическая ошибка: отсутствует ")" перед идентификатором "requiredData"

main.cpp(14): ошибка C2660: 'linearSearch': функция не принимает 2 аргумента

========== Построение: 0 выполнено, 1 не выполнено, 0 обновлено, 0 пропущено ===========

0 ответов

Другие вопросы по тегам