I have a class which dynamically allocates memory for three data arrays, and as such in the destructor I told it to delete those data arrays.
However, when I've created a new class, and inherited the previous class - it will always crash AFTER running the program, unless I don't have the previous destructor present.
In the base class constructor do you initialize the three pointers to NULL (aka 0 aka nullptr)? Or do you new[] them?
By doing either, you ensure that delete[]'ing them is a harmless operation.
Is your base class destructor marked as virtual?
Rule of thumb: a class that's meant to be inherited from should always have a virtual destructor, otherwise polymorphism won't work properly.
You could help us help you by posting your current source code. Then we wouldn't have to guess what the problem is.