Мы знаем, что компилятор генерирует некоторые функции-члены для пользовательского класса, если эти функции-члены не определены, но используются, не так ли? Итак, у меня есть такой код:
class AA
{
};
void main()
{
AA a;
AA b(a);
a = b;
}
Этот код работает нормально. Я имею в виду отсутствие ошибки компилятора. Но следующий код ....
class AA
{
int member1;
int member2;
};
Но этот код выдает ошибку времени выполнения, потому что переменная "a" используется без инициализации !!!
Итак, мой вопрос таков: когда мы создаем экземпляр типа int, он имеет значение. Так почему конструктор по умолчанию не работает и с помощью этих двух чисел int инициализируется переменная "a" ??
РЕДАКТИРОВАТЬ: Платформа: Win Vista, компилятор: компилятор Visual Studio 2008; Флаги: по умолчанию