Сочетание сам+проверка образует сложное слово самопроверка при помощи соединительной гласной О (сложение производящих слов).
Сочетание вагон+ресторан образует сложное слово вагон-ресторан при помощи дефиса (сложение производящих основ без соединительной гласной).