Untitled
Untitled
Untitled
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3.2 Zugriff auf Variablen und Kommunikation zwischen Threads 39<br />
Listing 3.5. Datenzugriffsklausel bei einer statischen Elementvariablen<br />
einer Klasse in C++.<br />
class ClassWithStaticMembers {<br />
// ...<br />
static int n;<br />
// ...<br />
};<br />
// ...<br />
#pragma omp parallel for<br />
//<br />
shared(ClassWithStaticMembers::n)<br />
...<br />
1. Die Deklaration der Variable (d. h., ihr lexikalischer<br />
Gültigkeitsbereich) muss die Direktive, in deren Klauseln<br />
sie auftaucht, vollständig umfassen.<br />
2. Eine Datenzugriffsklausel kann sich nicht auf einzelne<br />
Bestandteile von Objekten beziehen, sondern immer<br />
nur auf das Objekt in seiner Gesamtheit. Datenzugriffsklauseln<br />
können also Variablen enthalten, die<br />
Strukturen- oder Klassentypen sind. In diesem Fall wird<br />
der Zugriff für alle Felder der Struktur oder der Klasse<br />
gleich geregelt, nicht aber nur auf einzelne Attribute<br />
solcher Variablen.<br />
3. Eine Ausnahme bilden statische Elementvariablen einer<br />
Klasse in C++, die – voll qualifiziert – in Datenzugriffsklauseln<br />
stehen dürfen, wie Listing 3.5 zeigt.<br />
4. Auf eine Direktive dürfen mehrere private-undshared-<br />
Klauseln folgen, eine gegebene Variable darf jedoch immer<br />
nur in höchstens einer dieser Klauseln auftauchen.<br />
Eine Variable kann nicht gleichzeitig gemeinsam und<br />
privat genutzt werden.