模板和 typedef 错误
Template and typedef errors
我知道了 class:
template <class T>
class NodoLista
{
public:
T dato;
Puntero<NodoLista<T>> sig;
NodoLista<T>(const T& e, Puntero<NodoLista<T>> s) : dato(e), sig(s) { };
};
然后我尝试像这样使用 typedef:
template <class U>
typedef Puntero<NodoLista<U>> pNodoLista;
void main()
{
pNodoLista<int> nodo = new NodoLista<int>(1, nullptr);
cout<<nodo->dato<<endl;
}
我收到一条错误消息,说我的模板不正确。
如何使用 typedef 来使用:
Puntero<NodoLista<T>> as pNodoLista<T>
template <class U>
typedef Puntero<NodoLista<U>> pNodoLista;
应该是
typedef template <class U> Puntero<NodoLista<U>> pNodoLista;
尝试使用
template <class T>
using pNodoLista = Puntero<NodoLista<T>>;
现在 pNodoLista<T>
等同于 Puntero<NodoLista<T>>
.
如果您的编译器不支持 c++11,您可以使用解决方法:
template <class T>
struct pNodoLista
{
typedef Puntero<NodoLista<T>> type;
};
现在 pNodoLista<T>::type
等同于 Puntero<NodoLista<T>>
.
顺便说一句:main()
应该 return int
.
我知道了 class:
template <class T>
class NodoLista
{
public:
T dato;
Puntero<NodoLista<T>> sig;
NodoLista<T>(const T& e, Puntero<NodoLista<T>> s) : dato(e), sig(s) { };
};
然后我尝试像这样使用 typedef:
template <class U>
typedef Puntero<NodoLista<U>> pNodoLista;
void main()
{
pNodoLista<int> nodo = new NodoLista<int>(1, nullptr);
cout<<nodo->dato<<endl;
}
我收到一条错误消息,说我的模板不正确。 如何使用 typedef 来使用:
Puntero<NodoLista<T>> as pNodoLista<T>
template <class U>
typedef Puntero<NodoLista<U>> pNodoLista;
应该是
typedef template <class U> Puntero<NodoLista<U>> pNodoLista;
尝试使用
template <class T>
using pNodoLista = Puntero<NodoLista<T>>;
现在 pNodoLista<T>
等同于 Puntero<NodoLista<T>>
.
如果您的编译器不支持 c++11,您可以使用解决方法:
template <class T>
struct pNodoLista
{
typedef Puntero<NodoLista<T>> type;
};
现在 pNodoLista<T>::type
等同于 Puntero<NodoLista<T>>
.
顺便说一句:main()
应该 return int
.