mercredi 21 avril 2021

How to Delete Dynamic Memory allocated in Class Constructor using destructor

I'm trying to deallocate the memory of an object using destructor. this memory was allocated on the declaration of the object. the code snippet below is a comprehensive version of the program I'm making, but it explains my problem. I know that the problem is coming in deallocation via destructor but I have no clues what might be cause of the exception.

#include <iostream>
using namespace std;
class student 
{
private:
    char const* firstname;
    char const* lastname;
public:
    student()
    {
        firstname = new char[10];
        lastname = new char[10];
        firstname = "HelloMaria";
        lastname = "Something";
    }
    void print()
    {
        cout << "Firstname =  " << firstname<<endl;
        cout << "Last name = " << lastname << endl;
    }
    ~student()
    {
        cout << "Destructor Called" << endl;
        delete[] firstname;
        delete[] lastname;
    }
};
int main()
{
    student obj1;
    obj1.print();
    system("pause");
    return 0;

}

Aucun commentaire:

Enregistrer un commentaire