C/C++

/********* My Custom Class Definitions *********/

Complex
Description: Complex Numbers


Triangle
Description: Triangle


Vector
Description: Templatized class - Safe arrays for any data type












Vector class declaration

#include <iostream>
#include <cmath>
#include <cstdlib>
#include <assert.h>
#include <iomanip>

const maxsize = 1000;

Template <class datatype> class Vector {
private:
  int size; //% represents current size of array
  datatype DATA[maxsize]; //% represents max # of elements
public:
  Vector(int size2 = 0); //% default set to 0
  Vector(Vector<datatype> &x); //% copy constructor
  int length(void); //% returns size
  void resize(int newsize); //% set size to newsize
  datatype &operator [] (int n); //% w/ range checking
  Vector<datatype> &operator = (Vector<datatype> x); // asgn operator
  Vector<datatype> &operator += (Vector<datatype> x); //
}; //class Vector

//%%%%%%%%%%%%%%%%&&&&&&&%%%%%%%%%%%%%%%%%//
//%%%CLASS Vector  FUNCTION DEFINITIONS%%%//
//%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&%%%%%%%%%%//
//
Template <class datatype>
Vector<datatype>::Vector<datatype>(int size2) {
  size = size2;
}
//
Template <class datatype>
Vector<datatype>::Vector<datatype>(Vector<datatype> &x) {
  size = x.length();
  for(int k=0; k < size; k++)
    DATA[k] = x[k];
}
//
Template <class datatype>
int Vector<datatype>::length(void) {
  return size;
}
//
Template <class datatype>
void Vector<datatype>::resize(int newsize) {
  assert(newsize <= maxsize);
  size = newsize;
}
//
Template <class datatype>
datatype &Vector<datatype>::operator [] (int n) {
  if (n >= 0 && n < size) return DATA[n];
  //else
  cout << "Out of range error! "<< endl; 
  abort();
}
//
Template <class datatype>
Vector<datatype> &Vector<datatype>::operator = (Vector<datatype> x) {
  resize(x.length());
  for( int i = 0; i < size; i ++)
    DATA[i] = x[i];
  return *this;
}
//
Template <class datatype>
Vector<datatype> &Vector<datatype>::operator += (Vector<datatype> x) {
  int origsize = size;
  size+=x.size;
  for(int i = origsize; i < size  ; i++) 
    DATA[i] = x[i-origsize];
  return *this;
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%END Vector FCN DEFINITIONS%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%