gpt4 book ai didi

c++ - 使用模板时出现 "undefined reference to"链接器错误

转载 作者:搜寻专家 更新时间:2023-10-31 02:16:58 26 4
gpt4 key购买 nike

<分区>

我有一个数组类

template <typename T>
class Array : public SequentialContainer<T>{
public:
Array(Int size){local_vector.reserve(size);}
Array(std::initializer_list<T> initializer_list){
local_vector.assign(initializer_list);
}
virtual Boolean contains(T &object) const;
virtual Boolean contains(Container<T> &container) const;
virtual Int size() const;
virtual T &operator[](Int idx);
virtual T &get(Int idx);
virtual void set(Int idx, const T &object);
virtual Int indexOf(T &object);
virtual Iterator<T> iterator() const;
};

Array.cpp 文件中的所有方法都是这样实现的:

template <typename T>
Boolean Array<T>::contains(T &object) const {
//code
}

如果我尝试在 main.cpp 文件中使用这个 Array 类:

Array<int> c = {1, 2, 3, 4, 5, 6};
std::cout << c.[4] <<std::endl;

我收到这些链接器错误:

undefined reference to `Array<int>::iterator() const'
undefined reference to `Array<int>::contains(int&) const'
undefined reference to `Array<int>::contains(Container<int>&) const'
etc...

Array 类的每一个方法。所有文件都在我的 cmake 文件中,应该编译。为什么我会收到此链接器错误?有人可以给我解释一下吗?

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