я написал эту небольшую программу:Поведение пустого класса в C++
#include <iostream>
using namespace std;
class a{
};
int main()
{
a *obj=new a();
cout<<sizeof(obj)<<endl;
cout<<sizeof(*obj)<<endl;
delete obj;
}
Ниже вывод, что я получил:
> ./a.out
4
1
>
Я могу понять, что его использование 4 байта для хранения адрес объекта. Но я не понимаю, что это 1 байт. Поскольку у него пустой класс, я сомневаюсь в том, что является целью этого 1 байта (размер объекта).
Моим вторым вопросом будет вызываться конструктор по умолчанию? если да, что бы это в основном делало?
Учитесь здесь: [** Каков размер объекта пустого класса? **] (http://stackoverflow.com/questions/621616/c-what-is-the-size-of- a-object-of-a-empty-class) –
У этого также есть второй вопрос, который еще не имеет ответа в данной так называемой дублированной ссылке. – Vijay
@sarthi Хорошо, пожалуйста, рассмотрите мои комментарии my help И эта ссылка может asnwer вторая часть [** Что компилятор добавляет в декларацию пустого класса? **] (http://stackoverflow.com/questions/2659895/what-does -a-compiler-add-to-the-empty-class-declaration) и [** Являются ли пустые конструкторы всегда вызываемыми в C++? **) (http://stackoverflow.com/questions/5097545/are-empty-constructors - всегда-в-в) –