Вверху вас main.cpp добавьте:
#include "Vector.cpp" // since you are learning, this is really strange and should be avoided, but for your example we leave it as is.
В вашем Vector.cpp
#include <vector>
#include <iostream>
template<class T>
void write_vector(const std::vector<T>& V)
{
for(int i=0; i < V.size(); i++)
std::cout << V[i] << " ";
}
Не используйте операторы using. Плохая привычка. Вам не нужны явные экземпляры или другие вещи. Ваш компилятор может вывести правильный шаблон.
Хотя это работает, это плохой код. При использовании шаблона всегда пишите все в файле .h. Так что измените свой Vector.cpp
на Vector.h
. Удалите предварительную декларацию из вашего main.cpp и #include "Vector.cpp"
Ваш код будет работать без каких-либо изменений.
Наконец, C ++ может действовать, например, :
#include <vector>
#include <iostream>
#include <algorithm>
template<class T>
void write_vector(const std::vector<T>& V)
{
std::copy(V.begin(), V.end(), std::ostream_iterator<T>(std::cout, " ")); // you don't even need this function right?
//for(int i=0; i < V.size(); i++)
// std::cout << V[i] << " ";
}
Вы можете делать подобные вещи для чина.