Скорее всего, копия вашего объекта создается. Из-за этого деструктор для скопированного объекта и для исходного объекта делает call-count = 2.
Пример. Даже если вы передаете ссылку на объект какому-либо классу, это внутренне вызовет конструктор копирования. Чтобы избежать этого, дочерний класс (на который вы передаете родительскую ссылку, должен быть как;
Parent *const &p parentRef; //Child.h
Тогда родительский объект будет передан как;
// Parent.cpp
Parent *parentObj = this;
Child *childObj = Child(parentObj);
Кроме того, вы можете отладить вызов конструктора копирования, переопределив;
Parent(const Parent& object){
cout <<"copy called.." << endl;
}
...
Подробнее @ stackoverflow @