История изменений
Исправление KivApple, (текущая версия) :
Ссылка ничем под капотом не отличается от указателя. Просто ей в отличии от указателя нельзя переприсвоить значение, плюс синтаксис обращения без необходимости разыменовывать. В общем, обычный синтаксический сахар. А на деле userSettings является указателем на объект созданный в конструкторе. Очевидно, после delete realSettings он станет невалидным. Программа может не падать, потому что хоть память и помечена свободной, она может какое то время сохранять старые значения (пока не будет перезаписана чем-то новым), плюс munmap делается блоками кратными 4 КБ, так что delete в общем случае не гарантирует мгновенную невалидность адреса. Можешь попробовать запустить под valgrind, скорее всего ударит по рукам за обращения к userSettings после delete.
Исправление KivApple, :
Ссылка ничем под капотом не отличается от указателя. Просто ей в отличии от указателя нельзя переприсвоить значение, плюс синтаксис обращения без необходимости разыменовывать. В общем, обычный синтаксический сахар. А на деле userSettings является указателем на объект созданный в конструкторе. Очевидно, после delete realSettings он станет невалидным. Программа может не падать, потому что хоть память и помечена свободной, она может какое то время сохранять старые значения (пока не будет перезаписана чем-то новым), плюс munmap делается блоками кратными 4 КБ, так что delete в общем случае не гарантирует мгновенную невалидность адреса.
Исходная версия KivApple, :
Ссылка ничем под капотом не отличается от указателя. Просто ей в отличии от указателя нельзя переприсвоить значение, плюс синтаксис обращения без необходимости разыменовывать. В общем, обычный синтаксический сахар. А на деле userSettings является указателем на объект созданный в конструкторе. Очевидно, после delete realSettings он станет невалидным. Программа может не падать, потому что хоть память и помечена свободной, она может какое то время сохранять старые значения, плюс munmap делается блоками кратными 4 КБ, так что delete в общем случае не гарантирует мгновенную невалидность адреса.