У меня есть этот простой фрагмент кода:
Код: Выделить всё
class A {
int member;
~A();
};
void some_function() {
A a; // Line 1
A b = a; // Line 2
b = a; // Line 3
}
Мне хотелось бы знать, в какой момент строка в функции, этот код не работает?
Я знаю, что деструктор по умолчанию является закрытым, поэтому пользователь не имеет к нему доступа, но почему такая простая строка генерирует ошибка.
Я думаю, что в строке 2 произошел сбой, потому что в этой строке требуется конструктор копирования для создания b, но a уже был уничтожен из-за определения класса, но я хотел бы получить подробный ответ, почему.
Спасибо за вашу помощь п>
Подробнее здесь: https://stackoverflow.com/questions/792 ... o-an-error
Мобильная версия