colobot-data/help/cbot/R/public.txt

51 lines
2.4 KiB
Plaintext
Raw Normal View History

\b;Инструкция \c;public\n; (для специалистов)
Эта команда имеет две различные цели¦:
1) Сделать функцию доступной для других ботов.
2) Сделать член класса доступным извне для других классов.
\b;Инструкция \c;public\n; для функций
Еслы вы напишете \c;public\n; перед определением \l;функциии\u cbot\function;, то вы сможете сделать эту программу доступной для других ботов.
Например, вот программа первого бота¦:
\c;
\s;public void object::Segment(float dist, float angle)
\s;{
\s; move(dist);
\s; turn(angle);
\s;}
\n;
А в другом боте мы имеем¦:
\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;
Если вы объявили функцию \c;общедоступной\n;, то вы сможете использовать ее в других миссиях.
Если бот, содержащий \c;общедоступную\n; функцию будет уничтожен, то другие боты, использовавшие ее будут остановлены с ошибкой.
\b;Инструкция \c;public\n; для классов
Член \l;класса\u cbot\class; может быть общедоступен (по-умолчанию) или \l;быть личным\u cbot\private;. Член может быть объявлен локальным с помощью \c;private\n;, написав это перед самим членом. Закрытые члены будут недоступны извне для других классов.
\c;
\s;public class MyClass
\s;{
\s; int b; // общедоступно по-умолчанию
\s; public int a; // всегда общедоступно
\s; private point position; // личная
\s;}
\s;void Test()
\s;{
\s; MyClass item;
\s; item.a = item.b = 12; // ок
\s; message( item.position ); // это ошибка
\s;}
\n;
\t;См. также
\c;\l;class\u cbot\class;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;functions\u cbot\function;\n;
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.