I'm getting hard time figuring out solution for calling constructor of class which uses templates.
--Header file
template <class Item>
class Binary_tree
{
    string file_name;
    list<Item> arr_data;
public:
    Binary_tree(string fname);
    void printArr();
};
--cpp file
template <typename Item>
Binary_tree<Item>::Binary_tree(string fname)
{
    File_Name = fname;
    total = 0;
    root = nullptr;
    std::ifstream filestream(fname);
    string line;
    while (!filestream.eof())
    {
        filestream >> line;
        arr_data.push_back(line);
    }
}
template <typename Item>
void Binary_tree<Item>::printArr()
{
    int size = arr_data.size();
    for (int i = 0; i < size; i++)
    {
        cout << "arr_data [" << i << "] is: " << arr_data[i] << endl;
    }
} 
--main.cpp
int main(int argc, char** argv)
{
 Binary_tree<string> test(file); 
 test.printArr();
 return 0;
}
Right now I'm getting LNK1120 and LNK2019 errors.
 
     
    