main.cpp
#include <iostream>
#include "vector.hpp"
int main(){
lasd::Vector<int> Vector_int(400);
}
vector.cpp
#include <iostream>
#include "vector.hpp"
template <class Data>
lasd::Vector<Data>::Vector(Data a){
this->Pointer = a;
}
矢量.hpp
#ifndef VECTOR_HPP
#define VECTOR_HPP
namespace lasd{
template <typename Data>
class Vector{
private:
int dimensione;
Data Pointer;
public:
Vector();
Vector(Data a);
};
}
#include "vector.cpp"
#endif
ERRORI
./vector.cpp:6:21: error: redefinition of
'Vector<Data>'
lasd::Vector<Data>::Vector(Data a){
^
./vector.cpp:6:21: note: previous definition is
here
lasd::Vector<Data>::Vector(Data a){
^
1 error generated.
我搞不清我代码中的错误是什么。你能告诉我出了什么问题吗。如果你能给我一个建议,我将不胜感激。我整个上午都在摇头。附言:我学习c++的时间很短。
问题出现在vector.hpp 中
#include "vector.cpp"
拆下此管路。
但是,您会遇到另一个问题,即模板代码必须放在头文件中。因此,将所有代码从"vector.cpp"移动到"vector.h"并删除"vector.cpp">