Конструктор потоков довольно умен.Просто скажите ему, какую функцию-член вызывать, и дайте ему объект для вызова функции:
Airplane *av1 = new Airplane;
std::thread first(&Airplane::impress, av1);
first.join(); // wait for thread to finish
Или в стиле, более похожем на C ++:
Airplane av;
std::thread first(&Airplane::impress, av);
first.join(); // wait for thread to finish
Или, еслифункция-член изменяет объект, и вы должны увидеть эти изменения после завершения потока, передайте объект по ссылке:
Airplane av;
std::thread first(&Airplane::impress, std::ref(av));
first.join(); // wait for thread to finish