Colobot Wiki
Advertisement

Definicja[]

Słowo kluczowe public jest specyfikatorem dostępu klasy, obiektu w klasie bądź dowolnej funkcji. Obiekty oznaczone tym specyfikatorem są dostępne w obrębie całego programu i wszystkich robotów na planszy.

Public w przypadku funkcji[]

Specyfikator ten użyty obok nazwy funkcji sprawi, że funkcja stanie się dostępna dla wszystkich robotów na mapie.

Przykład[]

Wyobraź sobie, że na planszy są dwa roboty. Dla ułatwienia oznaczmy je "pierwszy" i "drugi". Nie ma znaczenia, jakiego typu się to roboty. Obydwa mają w sobie kod przedstawiony poniżej, a program "pierwszego" został uruchomiony co najmniej raz.

Kod "pierwszego":

public void object::f(int cyfra)
{

message("Zostala wywolana funkcja publiczna f(int).");
return cyfra;

}

extern void object::Pierwszy()
{

message("Funkcja publiczna f(int) zostala zapisana w pamieci.");

}

Kod "drugiego":

extern void object::Drugi()
{

message("Jestem robotem drugim.");
message("Wywoluje funkcje, ktorej nie mam w swoim programie.");
f(0);
message("Znam ta funkcje dzieki botowi Pierwszemu. Dzieki!");

}​

Jak widać, funkcja publiczna jest dostępna dla każdego robota na mapie, pod warunkiem, że program ją zawierający został uruchiomy co najmniej raz.

Public w przypadku klas[]

Specyfikator ten użyty obok nazwy klasy sprawi, że rzekoma klasa stanie się dostępna dla wszystkich robotów na mapie.

Przykład[]

Wyobraź sobie, że na planszy są dwa roboty. Dla ułatwienia oznaczmy je "pierwszy" i "drugi". Nie ma znaczenia, jakiego typu się to roboty. Obydwa mają w sobie kod przedstawiony poniżej, a program "pierwszego" został uruchomiony co najmniej raz.

Kod "pierwszego":

public class CKalkulator
{

int n1, n2;

void CKalkulator(int an1, int an2) { n1 = an1; n2 = an2; }
void CKalkulator() { n1 = 0; n2 = 0; }

int Suma() { return n1 + n2; }

}

extern void object::Pierwszy()
{

message("Klasa CKalkulator zostala zapisana w pamieci.");

}

Kod "drugiego": extern void object::Drugi()

{

message("Jestem robotem drugim.");
message("Tworze obiekt klasy CKalkulator, chociaz nie mam jej w swoim programie");
CKalkulator kalkulator(2,2);
message("Na dowod wywoluje funkcje na rzecz tego obiektu:");
message("kalkulator.Suma() = ", kalkulator.Suma());
message("Znam budowe kalkulatora dzieki botowi Pierwszemu. Dzieki!");

}

Jak widać, klasa jest dostępna dla każdego robota na mapie, pod warunkiem, że program ją zawierający został włączony co najmniej raz.==Public w przypadku obiektów wewnątrz klasy== [do zrobienia]


[DODAĆ HIPERŁĄCZA]

Advertisement