Why is the destructor not destryoing the class's member variables?

42 Views Asked by At

Isn't the destructor of the MyPointer class suppose to destroy the ptr object and all of its members? it seems like the destructor ran but for i don't understand why the 'number' of ptr still exists after the destructor ran.

#include <iostream>

using namespace std;

int* integerptr;

class MyPointer{
public:
    MyPointer(int arg);
    ~MyPointer();
    int number;
};

MyPointer::MyPointer(int arg):
    number(arg)
    {}

MyPointer::~MyPointer(){
    cout<<"Object Destroyed"<<endl;
}

int create_obj(){
    MyPointer ptr(3);
    integerptr=&ptr.number;
    cout<<integerptr<<"-->"<<*integerptr<<endl;
    return 0;
}
int main()
{
    create_obj();
    cout<<integerptr<<"-->"<<*integerptr<<endl;
    return 0;
}

Here is the output from the terminal:

0x61fefc-->3
Object Destroyed
0x61fefc-->3
0

There are 0 best solutions below