Constructor and Destructor
Constructor
//Rectangle.h
#ifndef RECTANGLE_H
#define RECTANGLE_H
class Rectangle
{
	private:
		double width;
		double length;
	public:
		//constructor
		Rectangle(double w, double l);

		//accessor
		double getWidth() const;
		double getLength() const;
		double getArea() const;

		//mutator
		void setWidth(double w);
		void setLength(double l);
};
#endif
			
//Rectangle.cpp
#include "Rectangle.h"

Rectangle::Rectangle(double w, double l):width(w), length(l){}

double Rectangle::getWidth() const
{
	return width;
}

double Rectangle::getLength() const
{
	return length;
}

double Rectangle::getArea() const
{
	return width*length;
}

void Rectangle::setWidth(double w)
{
	width = w;
}

void Rectangle::setLength(double l)
{
	length = l;
}
			
//main.cpp
#include <iostream>
#include "Rectangle.h"

int main(int argc, char *argv[])
{
	Rectangle *r;
	r = new Rectangle(5, 10);

	std::cout<<"Area: "<<r->getArea()<<std::endl;

	return 0;
}
			
Destructor
//V.h
#ifndef V_H
#define V_H
class V
{
	private:
		int size;
		double *array;
	public:
		V(int s);
		V(double *a, int s);
		int getSize() const;
		double *getArray() const;
		void display() const;
		~V();
};
#endif

//V.cpp
#include <cstdlib>
#include <iostream>
#include "V.h"
V::V(int s)
{
	std::cout<<"Constructor V(s) ..."<<std::endl;
	size = s;
	array = new double[size];
	for(int i = 0; i < size; i++)
		array[i] = rand()%100;
}

V::V(double *a, int s)
{
	std::cout<<"Constructor V(a, s) ..."<<std::endl;
	size = s;
	array = a;
}

int V::getSize() const
{
	return size;
}

double *V::getArray() const
{
	return array;
}

void V::display() const
{
	for(int i = 0; i < size; i++)
		std::cout<<array[i]<<" ";
	std::cout<<std::endl;
}
		
V::~V()
{
	std::cout<<"Destructor "<<size<<" ..."<<std::endl;
	size = 0;
	delete [] array;
	//array = 0;
}

//main.cpp
#include <iostream>
#include <cstdlib>
#include "V.h"

int main(int argc, char *argv[])
{
	V v(5);
	v.display();

	V *v2 = new V(10);
	v2->display();
	delete v2;

	double *array = new double [15];
	for(int i = 0; i < 15; i++)
		array[i] = rand()%100;
	V *v3 = new V(array, 15);
	v3->display();
	delete v3;

	return 0;
}