[ create a new paste ] login | about

Link: http://codepad.org/IcUeYtgD    [ raw code | output | fork ]

C++, pasted on Oct 23:
#include<iostream>
#include"entry.h"
#include"mmm.h"

using namespace std;

template<class T>
class llist{
public:

llist();

//llist(const llist &tocopy);

~llist();

T pop_head();

T pop_back();

void add(T* toadd);

void remove(T *tokill);

T get(long int index);

entry<T> *hold;
long int Length;

};

template<class T>
llist<T>::llist(){
  cout<<"enpty initializer called for llist\n";
  hold=new entry<T>();
  //hold->towardshead=hold;
  //hold->towardsback=hold;
  Length=0;
}

template<class T>
llist<T>::~llist(){
  Length=0;
  entry<T> *temp=hold;
  while(hold!=NULL){
    hold=hold->towardsback;
    dealloc(temp);
    temp=hold;
  }
}

//template<class T>
//llist<T>::llist(const llist &tocopy){}

template<class T>
void llist<T>::add(T *toadd){
  if(toadd->isGood){
    entry<T> *node=new entry<T>(toadd);//supposed leak here
    Length++;
    if(hold!=NULL){
      hold->towardsback=node;
      hold->towardsback->towardshead=node;
    }else{
      hold=node;
    }
    node->towardsback=hold;
    node->towardshead=hold->towardsback;
  }
}

template<class T>
void llist<T>::remove(T *tokill){
    int tid=tokill->id;
    dealloc(tokill);
    entry<T> *temp=hold;
    T *temp2=temp->stud;
    if(temp2!=NULL){
    for(int loop=0;loop<Length && (*temp->stud).id != tid ; loop++){//here
      temp=temp->towardsback;//here
    }
    if((*temp->stud).id == tid){
      if(temp==temp->towardsback){
        delete this;
      }else{
        temp->towardsback->towardshead=temp->towardshead;//here
        temp->towardshead->towardsback=temp->towardsback;
      }
      dealloc(temp);
      Length--;
    }
    }
    cout<<"done deleting\n";
}

template<class T>
T llist<T>::get(long int index){//bugged, non-functional
  if(hold==NULL){
    cout<<"head is null\n";
  }
  entry<T> *temp=hold;//always NULL, don't know why...
  if(hold==NULL){
    cout<<"south park\n";
  }
  for(;index>0 && temp!=NULL;index--){
    temp=temp->towardsback;
  }
  if(temp!=NULL){
    return *(temp->stud);
  }else{
    cout<<" gone past end of list with index : "<< index<<endl;
    return (*(new T()));
  }
}


Output:
1
2
3
4
Line 17: error: entry.h: No such file or directory
Line 15: error: mmm.h: No such file or directory
Line 27: error: ISO C++ forbids declaration of 'entry' with no type
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: