我不知道为什么会发生这种情况,因为我认为我已经正确地声明和定义了所有内容.
我有以下程序,使用模板设计.这是一个简单的队列实现,其成员函数为"add","substract"和"print".
我已经在精细的"nodo_colaypila.h"中为队列定义了节点:
#ifndef NODO_COLAYPILA_H
#define NODO_COLAYPILA_H
#include <iostream>
template <class T> class cola;
template <class T> class nodo_colaypila
{
T elem;
nodo_colaypila<T>* sig;
friend class cola<T>;
public:
nodo_colaypila(T, nodo_colaypila<T>*);
};
Run Code Online (Sandbox Code Playgroud)
然后在"nodo_colaypila.cpp"中实现
#include "nodo_colaypila.h"
#include <iostream>
template <class T> nodo_colaypila<T>::nodo_colaypila(T a, nodo_colaypila<T>* siguiente = NULL)
{
elem = a;
sig = siguiente;//ctor
}
Run Code Online (Sandbox Code Playgroud)
然后,队列模板类的定义和声明及其功能:
"cola.h":
#ifndef COLA_H
#define COLA_H
#include "nodo_colaypila.h"
template <class T> class cola
{
nodo_colaypila<T>* ult, pri;
public:
cola<T>();
void anade(T&);
T saca();
void print() const;
virtual …Run Code Online (Sandbox Code Playgroud)