gpt4 book ai didi

C++ (海合会) : undefined reference to `Stack::Stack(int)'

转载 作者:搜寻专家 更新时间:2023-10-31 00:19:39 27 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why can templates only be implemented in the header file?

我已经为此苦苦挣扎了一段时间,并且在这里查看了几个问题,但是作为 C++ 的新手,我一直无法理解我哪里错了。

这是代码,我从this page并试图让它发挥作用,但到目前为止我并不幸运:

堆栈.h

#ifndef STACK_H
#define STACK_H
template <class T>
class Stack {
public:
Stack(int n);
~Stack() { delete[] s; };
private:
T* s;
int _top;
int _size;
};
#endif // STACK_H

堆栈.cpp

#include "stack.h"
template <class T>
Stack<T>::Stack(int n) {
_size = n;
_top = -1;
s = new T[_size];
}

main.cpp

#include <iostream>
#include "stack.h"
using namespace std;
int main() {
Stack<int> s(10); // undefined reference to `Stack<int>::Stack(int)'
return 0;
}

当我编译 (gcc 4.5.2) 时出现一个错误:undefined reference to Stack<int>::Stack(int) .我已经尝试了几件事,但没有任何真正的知识来支持我所做的事情。如果有人能向我解释发生了什么,我将非常感激。

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