title: Container Class Sequence c++
body: <p>I am new to programming in c++ so can you please help me out? My code doesn't compile
  and I can't figure out the errors. This is the implementation file I wrote :</p>
  
  <pre><code># include &lt;algorithm&gt;
  #include &lt;cassert&gt;
  #include "sequence1.h" // See below
  using namespace std;
  
  namespace main_savitch_3{
  const sequence::size_type sequence:: CAPACITY;
  
  sequence::sequence(){
      current_index = 0;
      used = 0;
  }
  void sequence::start(){
      current_index= 0;
  
  }
  void sequence::advance(){
      if (is_item()== true)
      {current_index++;
      }
  }
  void sequence::insert(const value_type&amp; entry){
      int i;
      assert (size()&lt; CAPACITY);
      if (is_item() == false){
          current_index=0;}
      for (i= used, i&gt;current_index,i--){
          data[i] = data [i-1];}
      data[current_index]= entry;
      used++;
  }
   void sequence:: attach(const value_type&amp; entry){
      int i;
      assert (size()&lt; CAPACITY);
      if (is_item() == false){
          data[used-1]= entry;}
      for (i= used, i&gt; current_index, i--){
          data[i]= data[i+1]; 
      }
      data[current_index]= entry;
      used++;
   }
  void sequence::remove_current(){
      int i;
      assert(is_item()== true);
      for (i= current_index + 1, i&lt; used - 1, i++){
          data [i]= data[i+1];
          used--;
      }
  
  }
  sequence::size_type sequence::size() const{
      return used;}
  bool is_item() const {
      if(current_index&lt; used){
          return true;}
  }
  sequence::value_type sequence:: current() const{
      return data[current_index];}
  
  }
  </code></pre>
  
  <p>Here is the header file provided for my homework</p>
  
  <pre><code>// FILE: sequence1.h
  /*
  CLASS PROVIDED: sequence (part of the namespace main_savitch_3)
  There is no implementation file provided for this class since it is
  an exercise from Section 3.2 of "Data Structures and Other Objects Using C++"
  
  TYPEDEFS and MEMBER CONSTANTS for the sequence class:
  typedef ____ value_type
  sequence::value_type is the data type of the items in the sequence. It
  may be any of the C++ built-in types (int, char, etc.), or a class with a
  default constructor, an assignment operator, and a copy constructor.
  
  typedef ____ size_type
  sequence::size_type is the data type of any variable that keeps track of
  how many items are in a sequence.
  
  static const size_type CAPACITY = _____
  sequence::CAPACITY is the maximum number of items that a sequence can hold.
  
  CONSTRUCTOR for the sequence class:
  sequence( )
  Postcondition: The sequence has been initialized as an empty sequence.
  
  MODIFICATION MEMBER FUNCTIONS for the sequence class:
  void start( )
  Postcondition: The first item on the sequence becomes the current item
  (but if the sequence is empty, then there is no current item).
  
  void advance( )
  Precondition: is_item returns true.
  Postcondition: If the current item was already the last item in the
  sequence, then there is no longer any current item. Otherwise, the new
  current item is the item immediately after the original current item.
  
  void insert(const value_type&amp; entry)
  Precondition: size( ) &lt; CAPACITY.
  Postcondition: A new copy of entry has been inserted in the sequence
  before the current item. If there was no current item, then the new entry 
  has been inserted at the front of the sequence. In either case, the newly
  inserted item is now the current item of the sequence.
  
  void attach(const value_type&amp; entry)
  Precondition: size( ) &lt; CAPACITY.
  Postcondition: A new copy of entry has been inserted in the sequence after
  the current item. If there was no current item, then the new entry has 
  been attached to the end of the sequence. In either case, the newly
  inserted item is now the current item of the sequence.
  
  void remove_current( )
  Precondition: is_item returns true.
  Postcondition: The current item has been removed from the sequence, and the
  item after this (if there is one) is now the new current item.
  
  CONSTANT MEMBER FUNCTIONS for the sequence class:
  size_type size( ) const
  Postcondition: The return value is the number of items in the sequence.
  
  bool is_item( ) const
  Postcondition: A true return value indicates that there is a valid
  "current" item that may be retrieved by activating the current
   member function (listed below). A false return value indicates that
   there is no valid current item.
  
  value_type current( ) const
  Precondition: is_item( ) returns true.
  Postcondition: The item returned is the current item in the sequence.
  
  VALUE SEMANTICS for the sequence class:
  Assignments and the copy constructor may be used with sequence objects.
  */
  
  #ifndef MAIN_SAVITCH_SEQUENCE_H
  #define MAIN_SAVITCH_SEQUENCE_H
  #include &lt;cstdlib&gt;  // Provides size_t
  
  namespace main_savitch_3
  {
  class sequence
  {
  public:
      // TYPEDEFS and MEMBER CONSTANTS
      typedef double value_type;
      typedef std::size_t size_type;
      static const size_type CAPACITY = 30;
      // CONSTRUCTOR
      sequence( );
      // MODIFICATION MEMBER FUNCTIONS
      void start( );
      void advance( );
      void insert(const value_type&amp; entry);
      void attach(const value_type&amp; entry);
      void remove_current( );
      // CONSTANT MEMBER FUNCTIONS
      size_type size( ) const;
      bool is_item( ) const;
      value_type current( ) const;
   private:
      value_type data[CAPACITY];
      size_type used;
      size_type current_index;
     };
   }
  
   #endif
  </code></pre>
  
  <p>These are the mistakes the compiler gives me. How  can I fix them and are there any logical errors in my code?
  <img src="https://i.stack.imgur.com/96bMd.jpg" alt="Mistakes"> </p>
  
  <p>Thank you for your time</p>
  
  <p>this is the link to the sequence_exam file that will be used to grade me www-cs.ccny.cuny.edu/~esther/CSC212/HW/sequence_exam.cxx. when i use jgrasp and compile and link the header file, the implementation file, and the exam code i get undefined reference to main_savitch_3::sequence to all my functions. Am i compiling it wrong? Otherwise my implementation compiles perfectly</p>