So I has these Base class and sub class.
#include <iostream>
class BaseDevice
{
public:
int _pin;
BaseDevice() { std::cout << "base constructor\n"; }
virtual void read() = 0;
virtual ~BaseDevice() { printf("destroyed base\n"); }
void debugThis() { printf("debug %i \n", _pin); }
};
class Morse : public BaseDevice
{
public:
Morse(int pin) : BaseDevice() { _pin = pin; }
~Morse() { printf("destroyed morse\n");}
void read() { std::cout << "read"; }
private:
};
int main()
{
BaseDevice *morse[5];
morse[0] = new Morse(13);
morse[0]->debugThis();
morse[1] = new Morse(6);
morse[1]->debugThis();
delete morse[1];
morse[1]->debugThis();
return 0
}
So when I delete morse[1], it says it destroyed 'morse' & 'baseDevice'… But when I called morse[1]->debugThis() right after the delete, it's still printed out the _pin = 6. So the object pointer is still there. It's not deleted/destroyed?