为什么会出现此错误?错误:重新定义'Vector<Data>'



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">

最新更新