Мне сложно найти решение для вызова конструктора класса, который использует шаблоны.вызов конструктора класса шаблонов
--header файл
template <class Item>
class Binary_tree
{
string file_name;
list<Item> arr_data;
public:
Binary_tree(string fname);
void printArr();
};
--cpp файл
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;
}
Сейчас я получаю LNK1120 и LNK2019 ошибки.
Просьба указать [минимальный, завершающий, проверяемый пример] (http://stackoverflow.com/help/mcve). Что такое 'файл'? –
Потому что 'test', вероятно, воспринимается как объявление функции, а не переменная. –
файл - это имя файла, конструктор будет использовать этот файл для чтения данных и добавления его в список, определенный в классе Binary_tree. – Gaurav