Действительно трудно определить, что происходит, не глядя на ваш код. Убедитесь, что вы включаете .o файла, в котором определен класс dog.
Также, если массив не был создан с новым [], не используйте delete [].
Наконец, я знаю, что вы конкретно не спрашиваете об этом, но, возможно, стоит найти лучший онлайн-ресурс для изучения C ++. По крайней мере, используйте тот, который не имеет смущающих ошибок.