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