Что именно происходит в коде ниже.Вызов конструктора без создания объекта
#include<iostream.h>
class Demo
{
public :
Demo()
{
cout<<"\nIn Demo const";
}
~Demo()
{
cout<<"\nin demo dest";
}
};
void main() {
Demo();
}
Demo()
просто вызывает конструктор и деструктор. Создается ли объект в этом процессе? И, таким образом, выделяется память?
Начать придирчивость: в этом примере объект не имеет каких-либо членов, и наследование не задействовано. Поэтому объект не требует места в стеке. По крайней мере, любой здравомыслящий компилятор оптимизирует это для простого вызова функции. –
@PhilippAumayr - вы имеете в виду, что 'sizeof (Demo)' равно нулю ('0')? –
@PhilippAumayr по крайней мере, если нет виртуальной таблицы (rtti disabled) – bkausbk