Поскольку House
не имеет общедоступного конструктора, коду вне класса не разрешено создавать House
.Но вы пытаетесь сделать именно это, здесь:
House::house = std::make_shared<House>();
Реализация std::make_shared
вызывает new
для создания нового House
, но std::make_shared
не может получить доступ к частному конструктору House
.Чтобы это исправить, вам нужно построить House
самостоятельно:
House::house.reset(new House);