                                
                           ...................
                     ...::: phearless zine #4 :::...
                  
...............>---[ Symbian C++ Reference - Part 1 ]---<................

..........................>---[ by argv ]---<............................
                                                argv.cpp[at]gmail[dot]com

Sadrzaj:

    [0] Intro/Outro
    [1] Basics
    [2] Prefixes
    [3] Sufixes
    [4] Classes
    [5] Types

////////////////////////////////////////////////////////////////////////////
--==<[ 0. Intro/Outro
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

C++ za Symbian nije toliko drukciji po funkcionalnosti, ali se dosta razlikuje
po sintaksi i nacinu koristenja odredjenih funkcija. Posto je ovo relativno
veliko podrucje, odlucio sam razbiti ga u nekoliko chaptera (vjerovatno 3).
Za ovaj broj zinea ubacio sam samo osnove dok ce ostala 2 chaptera doci sa
brojem 5.

////////////////////////////////////////////////////////////////////////////
--==<[ 1. Basics
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Prvo slovo neke klase uvijek mora pocinjati sa velikim slovom. npr:

class TNekaKlasa

Rijeci koje oznacavaju varijablu ili ime funkcije takodjer pocinju sa velikim 
slovom, dok parametri funkcije pocinju s malim. npr:

void NekaFunkcija();
TInt mojaLokalnaVarijabla;
CVarijabla* iNekiMember;

////////////////////////////////////////////////////////////////////////////
--==<[ 2. Prefixes
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

neki od prefixa koji se koriste su:

TInt iTimer; -> i = instance
void NekaFunkcija(TBool aPrimjerBool, const TDesC& aName); -> a = argument 
enum TImena {EIvo, EIvica, EIvana}; -> E = enumeracija
const TInt KMaxFilenameLength = 256; -> K = konstantno (const)
#define KMaxFilenameLength 256 -> #define za const

////////////////////////////////////////////////////////////////////////////
--==<[ 3. Sufixes
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

neki od sufixa koji se koriste su:

void ConstructL(); -> L oznacava da se funkcija smije prekinuti nakon sto zavrsi.

CAplikacija* NewLC(); -> C oznacava da funkcija vraca pointer na CleanupStack 
i zatim izlazi.

TInt IzvrsiLD(TInt aResourceId); -> D oznacava da ce referirani objekt biti 
izbrisan nakon izvrsenja funkcije.

////////////////////////////////////////////////////////////////////////////
--==<[ 4. Classes
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Klase imaju 4 moguca prefixa, to su:

C(Class) - ove klase potjecu iz CBase headera (e32base.h) i mogu koristiti 
Stack i StackCleanup metode.
primjer: LOCAL_C void CNekaKlasa()

R(Resource) - ove klase sluze za kontrolu svih vanjskih resursa koje vasa 
aplikacija koristi (slike, ikone...)
primjer: RESOURCE NekiResource

T(Type) - ove klase koriste 'built-in tipove' i nije im potreban pointer ili 
handle za pristup.
primjer: LOCAL_C void TDriveInfo() 

M(Mixed) - ove klase mogu sadrzavati sve ostale klase i tako mozda smanjiti 
kolicinu posla, ali ovo je jos experimental i ne preporucujem.

////////////////////////////////////////////////////////////////////////////
--==<[ 5. Types
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Osnovni Tipovi su:

TIntX i TUintX (X = 8,16,32 bit) (TIntX = SIGNED, TUintX = UNSIGNED)
TReal32 i TReal64 (TReal32 = float, TReal64 = double)
TTextX (X = 8,16 bit) za signed integere
TAny* (TAny* == void*) (void MojaFunkcija(TAny* aPointerNaParametar);
TBool (TBool == True(1) or False(0))

--
Greetz

Blackhat