Hi I am trying to free memory for this character pointer but because it is initialized as name I can't delete/free it. How can i handle this situation? My header file and implementation files look like below.
/// Header file.
#ifndef __DAY_H__
#define __DAY_H__
class day {
    private:
        char* name;
        int   nClasses;
        bool  status; //working day or a holiday
    public:
        day();
        day( char * name, int place, bool status);
        day( const day& );
        //operator=( const day& );
        ~day();
        char * getName () const;
        int    getClasses () const;
        bool   getStatus () const;
        void setName ( char * name );
        void setClasses ( int classes );
        void setStatus ( bool status );
};
#endif
/// .cpp file
#include <iostream>
#include "day.hpp"
#include <string.h>
day::day()
{
    name = new char[10];
    name = "Monday";
    nClasses = 1;
    status = true;
}
day::day(char * _name, int _classes, bool _status)
{
    name = new char[10];
    strncpy(name, _name, 10);
    nClasses = _classes;
    status = _status;
}
day::day(const day& _myday)
{
    name = new char[10];
    name = _myday.name;
    nClasses = _myday.nClasses;
    status = _myday.status;
}
char*
day::getName() const
{
    return name;
}
int
day::getClasses() const
{
    return nClasses;
}
bool
day::getStatus() const
{
    return status;
}
void
day::setName( char * _name )
{
    name = _name;
}
void
day::setClasses( int _classes )
{
    nClasses = _classes;
}
void
day::setStatus( bool _status )
{
    status = _status;
}
day::~day()
{
    if (name != 0 ) {
        std::cout << "Deleting name" << std::endl;
        delete name;
    }
}
Thanks for help.
 
     
    