Просветите про g++
Скорее всего это превращается в ничего... После инлайна не остается ничего...
Это ты к тому, что у меня все конструкторы - деструкторы пустые? Так это я такаписал, чтобы не писать, что они делают, а просто обозначить, что они перегружены.
На самом деле в реальном классе все они были не тривиальными.
На самом деле в реальном классе все они были не тривиальными.
В идеале, должен вызваться только конструктор xxx.
На практике, так же могут быть вызваны: конструктор копии и деструктор.
На практике, так же могут быть вызваны: конструктор копии и деструктор.
Не забывайте, что существует еще один копирующий метод каждого объекта - оператор "=".
Таким образом могут быть следующие варианты:
1) xxx // в стеке вызываемого метода
operator =(temp)
temp.~xxx
2) xxx(temp)
temp.~xxx
Таким образом могут быть следующие варианты:
1) xxx // в стеке вызываемого метода
operator =(temp)
temp.~xxx
2) xxx(temp)
temp.~xxx
Спросил у Богачёва.
Оказалось, что конструктор копирования + деструктор.
Ещё он сказал, что всё может быть, т. к. класс - сложная штука.
Больше он ничего не ответил, так как его начали доставать первокурсники.
Видимо, компилятор читит.
Оказалось, что конструктор копирования + деструктор.
Ещё он сказал, что всё может быть, т. к. класс - сложная штука.
Больше он ничего не ответил, так как его начали доставать первокурсники.
Видимо, компилятор читит.
Недавно было уже это.
Оставить комментарий
vukula
Что происходит, когда вызывается return temp?
Вроде бы сначала должен вызваться конструктор копирования, а затем деструктор для temp, но gdb ничего такого не показывает.