» »

c++ zapis funkcije

c++ zapis funkcije

fogl ::

Če v msdn library preberš zapis funkcije za npr. SetTimer, dobiš ven:

UINT SetTimer(
HWND hWnd, // handle of window for timer messages
UINT nIDEvent, // timer identifier
UINT uElapse, // time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);

Kaj je UINT? Kaj je razlika med besedami z velikimi črkami in besedami z manjšimi? Kako veš kateri parametri funkcije so obvezni, kateri ne? Kako veš katerega tipa so parametri funkcije?...
lp, klemen
  • spremenil: fogl ()

Vesoljc ::

velike črke pomenijo da gre za TIP...
če vstaviš v msdn UINT dobiš ven unsigned integer.
karei parametri so obvezni? ponavadi vsi, je pa tako, da če določen parameter ni pomemeben podamo namesto njega 0 ali NULL.
katerega tipa so parametri? sej ti piše ;)
Abnormal behavior of abnormal brain makes me normal...

fogl ::

Kaj pa je to: HWND hWnd, // handle of window for timer messages

Z nekega programa sem prepisal:
SetTimer(ID_CLOCK_TIMER,1000,NULL);
Kateri od zgornjih parametrov tukaj manjka? Kako program ve kateri od njih manka?
lp, klemen

OwcA ::

HWND je kazalec na okno.

Prevajalnik preverja argumente funkcij po tipu in številu (če so vsi enakega tipa predpostavi, da manjka zadnji).
Otroška radovednost - gonilo napredka.

zed 5.0 ::

Prvi parameter ti manjka, ker je sample po vsej verjetnosti pisan v C++/MFC; SetTimer je member funkcija od CWnd class-a: HWND se poslje preko interne spremenljivke (m_hWnd), ostalo se prekopira. Nekako tkole:

CWnd::SetTimer(UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc )
{
::SetTimer(m_hWnd, nIDEvent, uElapse, lpTimerFunc);
}

Kadar niso obvezni vsi parametri, je funkcija ponavadi deklarirana v naslednji obliki:

void function(int param1, int param2 = 0)
{
// bla bla
}

param2 ni obvezen, default value = 0. Taksna oblika je pri Windows API funkcijah redka, verjetno jo celo ni (vsaj jaz se trenutno ne spomnim nobenega primera). Bolj pogosto je dokumentirano, da je dolocen parameter pac lahko 0, -1, NULL...

Zgodovina sprememb…

  • spremenilo: zed 5.0 ()

fogl ::

Pozabil sem povedat, da program deluje (čeprav naj bi nekaj manjkalo). Je pa res prepisan iz visual c++/MFC.
Kej pa je to member funkcija od CWnd class-a?

Zanima me še kaj pomeni dvojno dvopičje, kot npr.
void CDan4Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
bla bla
{
CDialog::OnSysCommand(nID, lParam); //kaj pomeni ta stavek?
}
}

Sem še čist začetnik, učim se iz Visual C++ 6 in 21 days...a kdo pozna, če je to za kej knjiga?
lp, klemen

Vesoljc ::

vc v 21 dneh je cisto vredi knjiga ce se ucis visual c++

ne zamert, ampak kot kaže si v c++ še čisto zelen, tako da ti ta knjiga pri razumevanju samega jezika ne bo dosti pomagala...

oglej si temo c++ povezave, tam notri boš ziher našel kake začetne tutoriale za c++
Abnormal behavior of abnormal brain makes me normal...

fogl ::

Sej se tud c++ učim (c++ za velike in male). A mi lahko sedaj še kdo pri zgornjem vprašanjem pomaga ;)
lp, klemen

Zgodovina sprememb…

  • spremenil: fogl ()

Vesoljc ::

kaj je member funkcija? ohh man...

class veš kaj je? class je osnova objektnega programiranja. in kot takem, mu lahko dodajamo notranje spremenljivke, funkcije operatorje ter verjetno še kaj.

class Avto
{
public:
     void BrumBrum();
private:
     int kubiki;
};


class Avto vsebuje torej eno funkcijo ter eno spremenljivko. ker ti dve zadevi nista dostopni od zunaj, rečemo, da sta member funkciji/spremenljivki.

ko želimo implementirati tako funckijo BrumBrum, to storimo tako:

void Avto::BrumBrum()
{
   cout << "brum brum";
}


najprej podamo njen tip, potem "očeta", dvojno dvopičje ter imer funkcije ter morebitne parametre. ko pa želimo uporabiti tako funkcijo uporabimo piko "."

Avto hondaVTi;
hondaVTi.BrumBrum();

go oop!
Abnormal behavior of abnormal brain makes me normal...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C++ programirane v Open GL oz. Direct x

Oddelek: Programiranje
242871 (2142) Vesoljc
»

OpenGL problem

Oddelek: Programiranje
212354 (1920) Gundolf
»

C++ 6.0 MFC vprašanje 2

Oddelek: Programiranje
6924 (859) hojtad
»

Win32 API in C++

Oddelek: Programiranje
131489 (1360) Monster
»

OpenGL orr v ansi c

Oddelek: Programiranje
121548 (1336) igor12

Več podobnih tem