Во-первых, экземпляры никогда не "создаются как указатель".Иногда экземпляры распределяются динамически (и этот механизм дает вам указатель для игры по умолчанию).Но даже если их нет, у них все еще есть адрес, и вы все равно можете получить указатель, который представляет этот адрес.
То, как мы используем конструктор std::thread
, не имеет ничего общего с хранилищемПродолжительность объекта, функцию-член которого вы хотите вызвать.
Итак, действительно, вы должны следовать тем же инструкциям:
std::thread t1(&myshape::display_area, &s, 100);
(есть пример именно этого на странице cppreference для этой функции.)
В качестве дополнительной путаницы этот конструктор также позволяет вам передавать ссылку вместо указателя, поэтому следующее также будет хорошо, есливам удобнее:
std::thread t1(&myshape::display_area, s, 100);