Metamorph
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Namespace, tabele, kazalci

Metamorph :: Koda :: C++

Go down

Namespace, tabele, kazalci Empty Namespace, tabele, kazalci

Objavlja  ANMA Pet Jan 16, 2009 12:23 pm

Namespace je način, kako se izzognete t. i. "name clash"-em, in še vedno ohranite kratka imena funkcij, classov itd.

Sintaksa:


namespace mojmir {
namespace zelje {
void pojadi(Zelje zelje);
}
namespace kislo_zelje {
void pojadi(Zelje zelje);
}
}


Nato lahko vaše zelje pojadite na vse te načine:

Zelje z(500); // ustvarimo 500 kg zelja

::mojmir::zelje::pojadi(z); // polno ime
::mojmir::kislo_zelje::pojadi(z); // tudi polno ime, samo druga funkcija

using namespace mojmir; // EVIL - ne tega delat

zelje::pojadi(z); // ni treba več pisati mojmir

using mojmir::kislo_zelje::pojadi;

pojadi(z); // pokliče ono od kislega zelja

Tabele (arrayi)

Tabela je del zvezen del rama (se pravi, brez lukenj) določene dolžine. Definiramo jo takole:
int t[16]; // definira tabelo 16 integerjev
double a[4]; // definira tabelo 4 doublov
a[0] = 4; // a[0] je sedaj 4
a[1] = 5;
a[4] = 6; // error, 4 ni veljaven indeks!
Tabela t je velika (na pc-jih) 4*16 bajtov (velikost tipa int * 16 mest). Tabela a je velika 8*4 bajte (velikost tipa double * 4 mesta).

Tabele in kazalci

Kazalci so spremenljivke, ki kažejo na druge spremenljivke. "kazanje" pomeni, da v bistvu držijo naslov (address) spremenljivke, na katero kažejo.
Primer:
int b = 5; // navadno celo število
int* pb = &b; // damo naslov spremenljivke b v pb
cout << b; // izpiše 5
cout << pb; // izpiše nekaj v stilu 0xbf860e98
// to je naslov spremenljivke b
cout << *pb; // izpiše 5 - stvar, na katero pb kaže
No, to so bili kazalci. Enostavno, a ne? No, kazalci ratajo zares uporabni s tabelami:
int t[] = {5,17,8,9}; // še en način za definirat tabelo štirih int-ov
double d[] = {4.2, M_PI, 14.0}; // definiramo še tabelo štirih doublov
int *pt = t; // t je v bistvu pointer na prvi element tabele
cout << *pt; // izpiše 5
cout << *(pt + 1); // izpiše 17
pt++;
cout << *pt; // izpiše 17

double *pd = &d[0];
cout << *pd; // izpiše 4.2
cout << *++pd; // izpiše 3.14
Koda:
Koda:
ANMA
ANMA

Število prispevkov : 2
Join date : 14/01/2009
Age : 31
Kraj : Dijak

Nazaj na vrh Go down

Nazaj na vrh


Metamorph :: Koda :: C++

 
Permissions in this forum:
Ne, ne moreš odgovarjati na teme v tem forumu