\b;Wskaźniki (dla specjalistów) CBOT używa odwołań do \l;klas\u cbot\class; i \l;tablic\u cbot\array;. Każda zmienna w rzeczywistości zawiera odwołanie do instancji. Instancja natomiast zawiera pola klasy. Wiele wskaźników może odwoływać się do tej samej instancji. Wskaźnik \c;\l;null\u cbot\null;\n; nie odwołuje się do niczego. Instancję można porównać do teczki, a wskaźnik do trzymającego. Za każdym razem gdy potrzebujemy nowej teczki, tworzymy nową instancję z trzymającym. Ale teczka może być trzymana przez więcej niż jedną osobę. Osoba nie trzymająca żadnej teczki to wskaźnik na \c;\l;null\u cbot\null;\n;. Przykład: \c;\s;{ \s; MojaKlasa item1();// utwórz nową instancję \s; // wskazywaną przez item1 \s; MojaKlasa item2; // utwórz wskaźnik null \s; item2 = item1; // skopiuj wskaźnik, \s; // item2 i item1 wskazują \s; // teraz tę samą instancję \s; item1.a = 12; // zmodyfikuj instancję \s; // wskazywaną przez item1 (i item2) \s; message(item2.a); // wyświetla liczbę 12 \s;} \n; W przypadku przekazania instancji \l;klasy\u cbot\class; jako parametru funkcji, funkcja otrzymuje wskaźnik do tej instancji. Oznacza to, że w przypadku modyfikacji instancji wewnątrz funkcji, zostanie zmodyfikowana instancja podana przy wywołaniu funkcji jako parametr. \c;\s;void Test( MojaKlasa item ) \s;{ \s; item.a = 12; // zmodyfikuj oryginalną instancję \s; item = new MojaKlasa(); // nowa instancja lokalna \s; item.a = 33; // zmodyfikuj instancję lokalną \s;} \n; Wywołanie funkcji \c;Test()\n;¦: \c;\s;{ \s; MojaKlasa toto(); \s; Test(toto); \s; message(toto.a); // wyświetla 12 \s;} \n; Instancja zawierająca pole \c;a = 33\n; jest wskazywana tylko przez nowoutworzoną instancję \c;item\n; wewnątrz funkcji \c;Test\n;. Na końcu funkcji \c;Test\n; ta instancja wskazywana przez \c;item\n; jest automatycznie usuwana. Funkcja może zwrócić instancję¦: \c;\s;MojaKlasa Test2( ) \s;{ \s; MojaKlasa item = new MojaKlasa(); \s; item.x = 33; \s; return item; \s;} \n; W taki sposób należy wywoływać funkcję: \c;\s;{ \s; MojaKlasa toto; \s; toto = Test2(); // toto będzie zawierać wskaźnik do \s; // instancji utworzonej przez Test2() \s; message(toto.a); // wyświetla 33 \s;} \n; \t;Zobacz również \c;\l;class\u cbot\class;\n;, \c;\l;new\u cbot\new;\n; \l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.