在java中我有以下生成的代碼:如何檢索與C++中的線程相關的對象實例?
public class B {
public void exec(){
X x = (X) Thread.currentThread();
System.out.println(x.value);
}
}
public class X extends Thread{
public int value;
public X(int x){
value = x;
}
public void run(){
B b = new B();
b.exec();
}
}
new X(4).start();
在B exec()方法檢索對應於該當前線程(也是類X的實例)的字段值。
有沒有辦法在C++中模擬相同的行爲?注意:我不想將x作爲參數傳遞給B實例,因爲代碼已生成。
class B {
public:
void exec();
};
class X {
public:
int value;
X(int x) {
value = x;
}
void run() {
B * b = new B();
b->exec();
}
};
void B::exec() {
std::cout << ??? << std::endl;
}
int main() {
X * x = new X(3);
boost::thread thr(boost::bind(&X::run, x));
thr.join();
}
我不知道如何檢索相關的線程(我知道我沒有之一)的類實例,任何想法?