How i can make the program recognize my operator << ??
#include <iostream>
using namespace::std;
template <class T>
class Set {
    T* group;
    int size_group;
public:
    Set():group(NULL),size_group(0){};
    Set(T*,int);
    Set(const Set<T>&);
    ~Set();
    void PrintObj()const;
    bool isThere(const T&)const;
    void getType()const;
    Set<T>& operator =(const Set<T>&);
    bool operator ==(const Set<T>&) const;
    void operator +=(const T);
    void operator -=(const T&);
    Set<T>& operator +(Set<T>&);
    Set<T>& operator -(const Set<T>&);
    bool operator >(const Set<T>&)const;
    friend ostream& operator << (ostream&,const Set<T>&);
};
template <class T>
ostream& operator << (ostream& output ,const Set<T>& obj){
    obj.getType();
    output << "The size of the group is: " << obj.size_group << endl;
    output << "{";
    for(int i=0; i < obj.size_group ; i++){
        output << obj.group[i];
        if(i+1 < obj.size_group){
            output << ", " ;
        }
    }
    output<< "}" << endl;
    return output;
}
MAIN:
#include "Set.h"
    int main() {
        int arr[] = {1,4,5,6,3,2};
        int arr2[] = {5,2,6};
        Set<int> j(arr,(sizeof(arr)/sizeof(arr[0]))),l(arr2,sizeof(arr2)/sizeof(arr2[0])),k;
        cout << j;
    }
When I try to call my print operator it doesn't recognize it
Showing Recent Messages Undefined symbol: operator<<(std::__1::basic_ostream >&, Set const&)
 
    