Это тривиальный вопрос
Может ли кто-нибудь объяснить причину трех деструкторов?
при вызове
[110 ]вызывается ваша функция, которая создает объект типа Entity, который в свою очередь вызывает конструктор. Здесь вы получите одно дополнительное сообщение конструктора
Замените ваш Entity(int t) contructor by this
Entity(int t)
:a(t)
{
std::cout << "Constructor created with integer "<< a << std::endl;
}
Вы увидите, какие конструкторы были вызваны при запуске кода.
Это зависит от реализации IS.
Стандарт разрешает копирование при привязке временного к константной ссылке. В вашем случае VC ++ выполняет копирование только тогда, когда конструктор неявно определен. Это неожиданно, но разрешено.
C ++ 1x исправит это .