in Java Ich habe folgende generierten Code:Wie wird eine Objektinstanz bezogen auf einen Thread in C++ abgerufen?
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();
Die B exec() Methode ruft den Wert Feld auf den aktuellen Thread (auch Instanz der Klasse X) entspricht.
Gibt es eine Möglichkeit, das gleiche Verhalten in C++ zu simulieren? Hinweis: Ich möchte x nicht als Parameter an die B-Instanz übergeben, da der Code generiert wird.
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();
}
Ich weiß nicht, wie die Klasseninstanz auf den Thread im Zusammenhang abzurufen (ich weiß, ich habe nicht ein), irgendwelche Ideen?