У меня есть класс, и в конструкторе класса я хочу запустить поток.Поэтому я назвал это-> mythread = std :: thread (foo).Теперь, если я создаю объект класса, функция foo выполняется, и я могу видеть печать с помощью функции foo, то есть "foo .. foo .. foo ..". Это поведение отличается, когда я создаю указатель класса, в этом случае функцияФу не выполняется вообще.Здесь я упомянул мой код, может кто-нибудь пройти код и сообщить мне, что здесь происходит?
#include <iostream>
#include <thread>
using namespace std;
void foo() {
cout << "foo.. foo.. foo.." << endl;
}
class test {
public:
test();
~test();
private:
std::thread m_thread;
};
test::test() {
this->m_thread = std::thread(foo);
}
test::~test() {
m_thread.join();
}
int main() {
test t; // function foo() executes
test *t1 = new test; // function foo() does not executes
test *t1 = new test(); // function foo() does not executes
return 0;
}