I have this code so far :
#include <iostream>
#include <string>
#include <windows.h>
#include <iomanip>
#include <thread>
#include <chrono>
#include <atomic>
class test {
public:
    thread t1;
    test() : t1(&test::work, this) {
        
    }
    void work() {
        while (true) {
            cout << "in thread";
            Sleep(1000);
        }
    }
};
int main()
{
    test t;
    while (true) {
        cout << "in main" << endl;
        Sleep(1000);
    }
    return 0;
}
Question 1: Is this how I'm suppose to create a thread in a class object for one function only after I initialize the object?
Question 2: I've seen people write atomic_bool and run(), is that necessary? and what is it for?
Question 3: do I need to delete or join the thread or do any kind of memory management?
Problem How can I create the thread somewhere else in the function of the objects other than the constructor? I have did this and it didn't work
void work() : t1(&test::work, this) {
        while (true) {
            cout << "in thread";
            Sleep(1000);
        }
    }
 
    