<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
<br>



<style>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass body.EC_hmmessage
{font-size:10pt;font-family:Ve</style>Hola a todos otra vez:<br><br>tengo un problemilla con templates, he leido ya lo referente a templates del curso de C++, pero no me ha solucionado mucho. Creo que he puesto <T> de más (o de menos) y entonces no compila, se queja de que no es un template, ¿podeis ayudarme? Os paso mucho codigo, todavia no estan implementadas muchas de las funciones, solo hace falta q mireis la  <T> y template <class T>, a ver si podeis decirme si he puesto algo mal.<br><br><font style="" color="#0070c0">#ifndef _ORDEREDLIST_H</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">#define _ORDEREDLIST_H</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">#include "Object.h"</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">#include "Container.h"</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">#include "ComparableObject.h"</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">template <class T></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">class OrderedList :public List{</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">    public:</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        OrderedList();</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        OrderedList(const OrderedList<T>&);</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        ~OrderedList();</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual put(const T&)=0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual remove(const T&)=0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        MyString toString() const;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        </font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        /*hereda de List:</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void putFirst(const T&)=0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void put(const T&, ListIterator<T>&)=0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void putLast(const T&)=0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void removeFirst() throw (EmptyContainerException) =0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void remove(ListIterator<T>&) throw (IteratorException)=0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void removeLast()  throw (EmptyContainerException)=0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void getFirst(T& t) const throw (EmptyContainerException) =0; </font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void get(T&, ListIterator<T>&) const throw (IteratorException) =0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void getLast(T&) const throw (EmptyContainerException)=0;*/</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">                      </font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        MyString toString() const;  </font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">        virtual void empty()=0;</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">};</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">template <class T></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">OrderedList<T>::OrderedList(){}</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">template <class T></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">OrderedList<T>::OrderedList(const OrderedList<T>&){}</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">template <class T></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">OrderedList<T>::~OrderedList(){}</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">template <class T></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">MyString OrderedList<T>::toString() const{</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">    return MyString("Soy una OrderedList");</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">}</font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0"><br></font><font style="" color="#0070c0">#endif<br><br><font style="" color="#000000">y "su heredero":<br><br><font style="" color="#7030a0">#ifndef _ORDERED_LINKED_LIST_H</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">#define _ORDERED_LINKED_LIST_H</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">#include "Object.h"</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">#include "Container.h"</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">#include "OrderedList.h"</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">class Node{</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    T val;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    Node<T>* next;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">};</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">class OrderedLinkedList :public OrderedList<T>{</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    </font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    private:</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        Node<T>* first;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        //hereta unsigned int nElems;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        </font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    public:</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        OrderedLinkedList();</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        OrderedLinkedList(const OrderedLinkedList<T>&);</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        ~OrderedLinkedList();</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        </font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        void copy(const Object&);</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        bool operator==(const Object&) const;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">          Object* clone() const;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">          MyString toString() const;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">          </font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">          //unsigned int getSize() const;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">         //bool isEmpty() const;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">         </font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        void put(const T&);</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        void remove(const T&);</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        void get(T&, int);</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">};</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">OrderedLinkedList<T>::OrderedLinkedList(){</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    first=new Node<T>;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    first->next=NULL;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">OrderedLinkedList<T>::OrderedLinkedList(const OrderedLinkedList<T>& m){</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    first=new Node<T>;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    first->next=NULL;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    this->copy(m);</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">OrderedLinkedList<T>::~OrderedLinkedList(){</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    Node<T>* aux;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    while(first!=NULL){</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        aux=first;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        first=first->next;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">        delete aux;</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    }</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">void OrderedLinkedList<T>::copy(const Object&){}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">bool OrderedLinkedList<T>::operator==(const Object&) const{}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">Object* OrderedLinkedList<T>::clone() const{}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">MyString OrderedLinkedList<T>::toString() const{}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">          </font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">void OrderedLinkedList<T>::put(const T& m){</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">    </font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">void OrderedLinkedList<T>::remove(const T& m){</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">template <class T></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">MyString OrderedLinkedList<T>::toString() const{</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">}</font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0"><br></font><font style="" color="#7030a0">#endif<br><font style="" color="#000000"><br></font><font style="" color="#000000">El compilador dice : (a parte de otros 20000 más pq faltaq codigo, claro)<br>g++ -Wall -c testOLL.cc<br>OrderedList.h:17: error: expected class-name before ‘{’ token<br><br>No entiendo nada, como que no es una classe????????<br><br>Bueno gracias a todos de antemano!!!<br></font></font><br></font></font><a href="http://www.microsoft.com/windows/windowslive/"></a><br /><hr />Comparte hasta 500 fotos en un solo email con  <a href='http://download.live.com/' target='_new'>Windows Live</a></body>
</html>