Co oznacza magiczne słowo "static"?

0

Co oznacza magiczne słowo "static"?

0

Już wiem co to jest. Widziałem jak zmienne w klasach były poprzedzane słowem static. Co to im daje?

0

Własnie to czytałem. Ale czy to mi coś daje. Np. szybciej działą program czy coś?
Słyszałem, że w C# np. czyni to metody klasy globalnymi.

0

Gregory:
Zmienna static zadeklarowana w klasie będzie miała taką samą wartość we wszystkich obiektach tej klasy.

Zmienna statyczna zadeklarowana wewnątrz funkcji, będzie zachowywała swoją wartość podczas kolejnych wywołań tej funkcji.

0

dodatkowo do zmiennych static klasy można się odwoływać bez tworzenia instancji tej klasy

i na prawdę zacznij korzystać z googla bo to ani nie boli ani nie gryzie

0
  1. Czy mogę od razu w klasie podawać wartość statica np.:
CKlasa
{
static zmienna = 20;
};

i

czy metody mogą być statyczne i czy to im daje to samo co zmiennym?

0
gregory EX napisał(a)

Czy mogę od razu w klasie podawać wartość statica

NIE !!

gregory EX napisał(a)

czy metody mogą być statyczne i czy to im daje to samo co zmiennym?

mogą być statyczne i są wtedy wspólny dla całej klasy a nie konkretnego obiektu

teraz takie pytanie od siebie: czy ty nigdy nie miałeś jakieś ksiązki w ręku ??

0

static jeszcze ogranicza widoczność funkcji do pliku w którym ja zdefiniowano i jeśli masz życzenie to
później możesz użyć tejsamej nazwy funkcji do dodefinicji innej

0

A mogę zrobic coś takiego :

class CKlasa
{
const zmienna = 20;
};

?

0

A czy mogę zrobić tak w klasie:

const zmienna = 1;
0

Nie. Ale możesz:

static const zmienna = 1;
0
  1. A dlaczego nie?

  2. Miałem przerwę w programowaniu w C++, więc mam pewne zaniki pamięci. Moje kolejne pytanie: Jak to jest z tym dziedziczeniem konstruktorów?

Mam taki kod np.:

class CKlasa
{
public:
int zmienna;
CKlasa()
{
zmienna = 20;}

};

class CKlasa2 : public CKlasa
{
public:
char zmienna2;

CKlasa2()
{
zmienna2 = "A"}
};

i teraz czy jak utworzę obiekt klasy CKlasa2, to czy będzie on miał zmienną zmienna o wartości podanej w konstruktorze klasy nadrzędnej?

0

A czy Ty czytałeś jakikolwiek kurs tegoż języka? A czy Ty posiadasz takie narzędzie jak kompilator? Ręce opadają...

0

Ad.1
Bo wartości stałym nadajesz w liście inicjalizującej konstruktora, dlatego, że tak wymyślili i już.

Ad.2
Konstruktor jest domyślny więc sie wywoła. Gdyby miał jakieś parametry (nie domyślne) to musiałbyś go wywołać w liście inicjalizującej. Konstruktory wywołują się od najstarszej klasy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1