gpt4 book ai didi

c++ - 为什么会出现此错误?错误:重新定义 'Vector'

转载 作者:行者123 更新时间:2023-12-02 10:04:15 24 4
gpt4 key购买 nike

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;
}

vector.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

错误
./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.

我无法弄清楚代码中的错误是什么。你能告诉我怎么了如果您能给我一个建议/建议,我将不胜感激。我整个上午都在头。 PS我学习c++的时间很短。

最佳答案

问题出在vector.hpp

#include "vector.cpp"

删除此行。

但是然后您会遇到另一个问题,那就是模板代码必须放在头文件中。因此,将所有代码从“vector.cpp”移到“vector.h”并删除“vector.cpp”

关于c++ - 为什么会出现此错误?错误:重新定义 'Vector<Data>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61028522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com