\b;Anweisung \c;public\n; (für Spezialisten)
Diese Anweisung dient zwei verschiedenen Zwecken:

1) Macht eine Funktion für andere Roboter verfügbar.
2) Macht ein Klassenmitglied von außerhalb der Definition der Klasse sichtbar.

\b;Anweisung \c;public\n; für Funktionen
Wenn Sie \c;public\n; vor der Deklaration einer \l;Funktion\u cbot\function; schreiben, können Sie die Funktion für Programme von anderen Robotern in der gleichen Mission verfügbar machen.

Im ersten Roboter könnten wir z.B. haben:
\c;
\s;public void object::Segment(float dist, float winkel)
\s;{
\s;	move(dist);
\s;	turn(winkel);
\s;}
\n;
Und in einem anderen Roboter:
\c;
\s;extern void object::Square( )
\s;{
\s;	for ( int i=0 ; i<4 ; i++ )
\s;	{
\s;		Segment(10, 90);
\s;		Fire(1);
\s;	}
\s;}
\n;
Wenn Sie eine Funktion als \c;public\n; deklariert haben, können Sie keine andere Funktion mit demselben Namen und denselben Parametern in einem anderen Roboter in derselben Mission haben.

Wenn ein Roboter mit einer als \c;public\n; deklarierten Funktion zerstört wird, werden die anderen Roboter, die diese Funktion benützen, mit einer Fehlermeldung anhalten.

\b;Anweisung \c;public\n; für Variablen
Glieder von \l;Klassen\u cbot\class; können als public (Standard) oder \l;privat\u cbot\private; deklariert werden. Private Glieder sind von außerhalb der Klassendefinition nicht sichtbar.
\c;
\s;public class MyClass
\s;{
\s;	int    b;                // standardmäßig public
\s;	public int a;            // auch public 
\s;	private point position;  // privat
\s;}
\s;void Test()
\s;{
\s;	MyClass item;
\s;	item.a = item.b = 12;      // OK
\s;	message( item.position );  // dies ist ein Fehler
\s;}
\n;
\t;Siehe auch
\c;\l;Klassen\u cbot\class;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;Funktionen\u cbot\function;\n;
Die \l;CBOT-Sprache\u cbot;, \l;Variablentypen\u cbot\type; und \l;Kategorien\u cbot\category;.
