26. marts 2003 - 20:37
Der er
23 kommentarer og 1 løsning
Havd er dette ????
Socket::Socket() : m_sock ( -1 ) { memset ( &m_addr, 0, sizeof ( m_addr )); } ': m_sock ( -1 )' er det arv i en eller anden form ? eller hvad er det ?
Annonceindlæg fra Conscia
26. marts 2003 - 20:42
#1
variablen m_sock bliver initialiseret til -1
26. marts 2003 - 20:43
#2
Kaldes liste initialisering.
26. marts 2003 - 20:46
#3
Men hvor står den der ? og ikke her: Socket::Socket() { m_sock ( -1 ); memset ( &m_addr, 0, sizeof ( m_addr )); }
26. marts 2003 - 20:49
#4
Konstruktionen bruges til følgende situation: class A indeholder et objekt af typen class B class B's constructor kaldes så på den måde i class A's constructor: A::A(int a, int b) : B(b)
26. marts 2003 - 20:51
#5
Nå du har allerede accepteret. Hvis A indeholder en pointer til et objekt af typen B kan man bare lave: A::A(int a, int b) { bo = new B(b); } men det kan man ikke når A indeholder selve objektet af typen B. Derfor skal man have en speciel syntax. Og man har så valgt den man har.
26. marts 2003 - 20:54
#6
Aha jeg må kikke mere i koden, og se om jeg kan finde hoved og halen i den. Det er en class, til håndtering af sockets i linux.
26. marts 2003 - 20:54
#7
Konstruktionen bruges også til at kalde super klassers constructors med. [men hvis det var eneste problem så kunne man godt have fundet en anden syntax f.eks. sådan som Java gør det på]
26. marts 2003 - 20:57
#8
m_sock må være et objekt som er et member af Socket og man kalder så dets constructor med -1 som argument.
26. marts 2003 - 20:58
#10
Det er muligt at man også kan initialisere simple datatyper på den måde. Men dem kunne man ligeså godt have initialiseret normalt i constructoren.
26. marts 2003 - 20:58
#11
Kan du ikke lige smide en link til den socket class? Er det C eller C++? Går ud fra det er C++ da der ikke er class'es i ren C, right? (Ja, jeg er ny inden for C)
26. marts 2003 - 21:00
#12
morw> Ja - der er ikke class'es i C.
26. marts 2003 - 21:03
#13
Maz Spork har (ikke overraskende) en god forklaring i sektion 4.3.7 !
26. marts 2003 - 21:04
#14
26. marts 2003 - 21:07
#15
26. marts 2003 - 21:23
#17
Det var jeg ikke klar over. Det er en fremragende bog. Med små simple eksempler for han forklaret det mest komplekse i C++ på yderst elegant vis. [man skal selvfølgelig være opmærksom på at bogen er lidt gammel og der er en del af de nye ting i C++ som ikke omtales: STL, namespaces, exceptions etc.]
26. marts 2003 - 21:26
#18
he he Jeg har også i gang med at downloade Mazs bog :o) Det går LANGSOMT.
26. marts 2003 - 21:28
#19
Ikke på min ADSL ;-D Ellers en stor tyk bog efter dansk standard!
26. marts 2003 - 21:29
#20
Ja, jeg ventede med at poste linket til jeg selv have hentet den.. ;-)
26. marts 2003 - 21:30
#21
Jeg har brugt bogen i mange år - formentlig siden 1. udgave udkom i 1991 (jeg kan ikke præcist huske så langt tilbage i tiden).
26. marts 2003 - 21:32
#22
morv: Jeg har 14 Mb/sec (kollegie) og jeg syntes det er en smule mystisk. :o(
26. marts 2003 - 21:38
#23
Så må du sige til de andre at de skal vente med en hente film :-D
26. marts 2003 - 21:45
#24
Eller så er der bare for mange der har læse denne tråd og downloader så der er flaskehals i den anden ende !
Kurser inden for grundlæggende programmering