\b;Instruction \c;public\n; (pour spécialistes)
Cette instruction a deux rôles distincts:

1) Rendre une fonction accessible de tous les robots.
2) Rendre une méthode d'une classe accessible de l'extérieur.

\b;Instruction \c;public\n; pour les fonctions
La présence de ce mot rend la \l;fonction\u cbot\function; disponible partout dans la mission. Cette fonction peut alors être utilisée dans le programme d'un autre robot.

Par exemple, dans un premier robot:
\c;
\s;public void object::Segment(float dist, float angle)
\s;{
\s;	move(dist);
\s;	turn(angle);
\s;}
\n;
Et dans un autre robot:
\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;
Il ne peut y avoir qu'une seule fonction ayant le même nom, parmi tous les programmes des robots de la mission en cours.

Si le robot qui contenait la fonction déclarée \c;public\n; est détruit, les autres robots qui utilisent cette fonction sont stoppés sur une erreur!

\b;Instruction \c;public\n; pour les classes
\c;public\n; is also an access modifier for \l;class\u cbot\class; members, which is the default one. Public members can be accessed from outside of the class definition.
\c;
\s;public class MaClasse
\s;{
\s;	int    b;                // public par défaut
\s;	public int a;            // public aussi
\s;	private point position;  // privé
\s;}
\s;void Test()
\s;{
\s;	MaClasse item;
\s;	item.a = item.b = 12;      // ok
\s;	message( item.position );  // erreur
\s;}
\n;
\t;Voir aussi
\c;\l;class\u cbot\class;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;protected\u cbot\protected;\n;, \c;\l;functions\u cbot\function;\n;
\l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;.
