gpt4 book ai didi

c++ - 带空括号的默认构造函数 C++ 错误

转载 作者:行者123 更新时间:2023-11-28 05:45:56 27 4
gpt4 key购买 nike

我不知道为什么当我创建类 Vector 时它会崩溃。请帮忙。在这个程序中,我想将任何类型的元素添加到数组中。我将 eclipse 与 Cross gcc、Ubuntu 一起使用

template<typename T>
class Vector{
public:
Vector();
void add(const T&);
private:
T *elem;
int cap;
int len;
};

template<typename T>
Vector<T>::Vector(){
len = 0;
cap = 30;
elem = new T[cap];
}

template<typename T>
void Vector<T>::(const T& m){
elem[len] = m;
len ++;
}

// Here I create Vector v, if I put Vector<int> v() I don't get error
Vector<int> v; //error "undefined reference to `Vector<int>::Vector()"
v.add(21); //error

最佳答案

您需要将成员函数定义(包括构造函数定义)放在定义模板类的同一个头文件中。

至于这个说法

// here i create Vector v, if i put Vector<int> v() i don't get error
Vector<int> v();

那么它是一个返回类型为Vector<int>的函数声明并且没有参数。它不是 Vector<int> 类型对象的定义.

关于c++ - 带空括号的默认构造函数 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36211016/

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