Gromguten Skrevet 16. mars 2005 Del Skrevet 16. mars 2005 Har nettop fått låne meg Object oriented programming in Microsoft c++ av Robert Lafore. Er det noen som har lest den? Er den noe god? Lurer på 1 ting. Er det noe forskjell i Microsoft c++ og c++? Kan jeg bruke boka visst jeg skal lære meg standard c++? Kan jeg bruke Dev++ for og gjøre eksemplene i boka? og helt på tampen så lurer jeg på om det er noen store fordeler med å kunne c++, og om det egentlig er verdt og lære det. For det tar jo lang tid å lære, mye og sette seg inn i. Blir vel fort "rustent" og rekner jeg med(?) Jeg er litt rar sånn, alt jeg driver med må nesten ha en mening Ikke missforstå, jeg synes å lære c++ er kjempegøy : Lenke til kommentar
GeirGrusom Skrevet 16. mars 2005 Del Skrevet 16. mars 2005 (endret) C++ skal i teorien være C++ uansett hvilke kompiler du bruker, men Microsoft C++ har noen egne funksjoner og typer som ikke er Standard (som du altså ikke må bruke, eller sette i en #ifdef hvis det skal la seg kompilere i andre compilere) dette er stort sett funksjoner markert med __ foran, f.eks. __asm (bruker MASM aktig syntaks, bruker denne funksjonen hele tiden) __interface (Blir forsåvidt kun brukt i MIDL/COM og .NET) __super (hvorfor super ikke er standard må gudene vite) __gc (Managed objekter for .NET) __property (.NET igjen) __int8/16/32/64 osv. finnes dusinvis edit: Glemte å nevne at alle funksjoner som er i biblioteker uten .h er standard, som skal la seg kompilere i alle compilere (som er oppdatert) Og svar på siste spørsmål: En kan være programmerer uten å kunne C++ (det finnes tusenvis som ikke kan det, helt utrolig hva denne bransjen har blitt til) Men C++ setter deg veldig nærme hvordan datamaskinen fungerer (ihvertfall hvis du bruker mye vanlig C) som er utrolig nyttig å vite, Pekere til funksjoner, stack/heap allokering... beste som finnes. Endret 16. mars 2005 av GeirGrusom Lenke til kommentar
waboi Skrevet 16. mars 2005 Del Skrevet 16. mars 2005 (endret) det finnes tusenvis som ikke kan det, helt utrolig hva denne bransjen har blitt til) det er ganske utrolig, spør du meg, at du, i herrens år 2005, sitter og lager timerfunksjonene dine og gud vet hva annet i inline asm. Pekere til funksjoner, stack/heap allokering... beste som finnes. ja gud. det er bedre enn sex! jeg simpelten elsker å sitte og new'e og delete'e for det er DET som gjør meg til en programmerer. samtidig som jeg bruker inline asm så mye som mulig selvsagt. Endret 16. mars 2005 av waboi Lenke til kommentar
Gromguten Skrevet 17. mars 2005 Forfatter Del Skrevet 17. mars 2005 Er det noen som har jobb som programmerer her? Har hørt at når man går videre til å bli IT-ingeniør ( sånn det skrives? ) så kan man velge forskjellige veier og gå, bla. annet programmering..Stemmer dette? Er det vansklig å få seg jobb i den bransjen? En av grunnene til at jeg har lyst og lære meg c++ er fordi jeg har litt lyst og arbeide med programmering senere i livet også, derfor jeg spør om slike "merkelige" spørsmål ( men lever i den teorien om at d er ingenting som heter dumme spørsmål bare dumme svar ) Visual c++ er det slik som visual basic? Sånn at man kan putte inn knapper og slikt å adde koder til dem, bare at det er c++ koder? Lenke til kommentar
kjetil7 Skrevet 17. mars 2005 Del Skrevet 17. mars 2005 (endret) Hvis du går på høgskole får du tittelen høgskoleingeniør etter 3 år, og er sannsynligvis den utdanningen du bør ta hvis du ønsker å bli programmerer. Det er sikkert forskjellig fra skole til skole, men skolen jeg gikk på hadde to linjer: softwareutvikling og hardwareutvikling. Første året er felles for begge linjene, mens noen av fagene 2. og 3. året er spesialisert for de to linjene. Du trenger ikke velge linje før du er ferdig med første året. Er ikke helt oppdatert på jobbmarkedet, men jeg tror det har blitt en del bedre den siste tiden etter det har vært ganske tungt i 2-3 år. For 4-5 år siden var det derimot veldig lett å få seg jobb. Hvordan det er om 5 år er det vel ingen som vet... Endret 17. mars 2005 av kjetil7 Lenke til kommentar
Gromguten Skrevet 17. mars 2005 Forfatter Del Skrevet 17. mars 2005 (endret) Hmm, har komt et lite stykke ut i boka, helt til et eksempel om unsigned og signa variabler. Jeg lastet ikke ned den compileren som blir brukt i boka for jeg har brukt dev++ littegrann fra før av. Men lurer nå på hvorfor dette ikke går i Dev++ #include <iostream.h> void main() { int signedVar = 25000; unsigned int unsignedVar = 25000; signedVar = (signedVar * 2) /3; // her skal d bli out of range unsignedVar = (unsignedVar *2) /3; //her skal det funke fint cout << "signedVar = " << signedVar << endl; // her skal det vise -5178 cout << "unsignedVar = " << unsignedVar << endl; // her skal det vise 16666 system("pause"); } Dette er det eksempelet som er i boka, bortsett fra at system("pause") ikke er der. Feilbeskjeden jeg får er: "Main must return int". Lurer på om det kanskje kan ha med compileren og gjøre? i og med at jeg ikke bruker den samme som i boka? Om det skulle ha noe og si. Jeg prøvde og skifte void med int, det funka. Eneste problemet da at den verdien jeg fikk på signedVar som skulle være -5178 ble den samme verdien som på unsignedVar. Hva er det egentlig som ikke er som det skal? edit: retta en skriveleif edit2: Kan det ha noe med at visst en integer blir for stor til å være int, at den blir automatisk gjort om til long int? Endret 17. mars 2005 av Gromguten Lenke til kommentar
Feynman Skrevet 18. mars 2005 Del Skrevet 18. mars 2005 Vanligvis skrives main()-funksjonen slik: int main(void) { /* Her putter du inn koden */ return 0; } Sikkert kompilatoren som tvinger deg til å implementere funksjonen slik. Lenke til kommentar
GeirGrusom Skrevet 18. mars 2005 Del Skrevet 18. mars 2005 det er ganske utrolig, spør du meg, at du, i herrens år 2005, sitter og lager timerfunksjonene dine og gud vet hva annet i inline asm. Og får meg, idenne herrens år 2005, er det helt utrolig at du, sitter her og ikke er interresert i å finne ut hvordan ting gjøres. Jeg (som forhåpentligvis) de fleste andre er ikke interresert i å bruke alt alle andre har laget for meg. Selvlagd er vellagd, dessuten lærer jeg veldig mye av å bruke assembly. "Se på meg! jeg liker å skrive #include <string> men helst vil jeg bare skrive php eller Java" tok deg på kornet der waboi? Lenke til kommentar
waboi Skrevet 18. mars 2005 Del Skrevet 18. mars 2005 nei det gjorde du ikke. en ting er å kunne assembly, det er en helt annen ting å bruke det. hvis du gjør det for å lære er det greit, men hvis du gjør det fordi det går fortere eller fordi du ikke vil bruke andre sine ting er det bare teit. og når det gjelder selvlagde ting vs biblioteker så er det nok ikke sant at selvlagd = vellagd. de fleste biblioteker er blitt testet og optimalisert rimelig mye mer enn noe av din kode vil jeg tippe. litt morro at du nettopp sa "maskinkode er helvete" i generell/annen programmering da. assembly er såååå mye bedre liksom. Lenke til kommentar
hishadow Skrevet 18. mars 2005 Del Skrevet 18. mars 2005 (endret) Hmm, har komt et lite stykke ut i boka, helt til et eksempel om unsigned og signa variabler. Jeg lastet ikke ned den compileren som blir brukt i boka for jeg har brukt dev++ littegrann fra før av. Men lurer nå på hvorfor dette ikke går i Dev++... int main(int argc, char** argv) { ... return 0; } argc = antall argumenter fra commandolinjen når programmet kalles. argv = liste med strings av hvert argument. * unsigned int er normalt 32-bit(2^32)... så 0 til 4294967295 signed int er -2147483648 til 2147483647, eller noe sånn. * Hvis du har en header fil i tillegg, så må int main(int argc, char** argv); være definert der. Redit: fixa. Endret 19. mars 2005 av hishadow Lenke til kommentar
GeirGrusom Skrevet 19. mars 2005 Del Skrevet 19. mars 2005 (off topic) *sigh* ja, hvis jeg skriver et inline assembly del, som skal vi si, regner ut hvor lang tid det er siden den koden ble kjørt sist (timer) så lærer jeg jo ndel av det. Assembly er en del lettere en maskinkode ja La oss f.eks. se på Jmp funksjonen: (Intel Instruction Set Referance) Opcode Instruction Description EB cb JMP rel8 Jump short, relative, displacement relative to next instruction E9 cw JMP rel16 Jump near, relative, displacement relative to next instruction E9 cd JMP rel32 Jump near, relative, displacement relative to next instruction FF /4 JMP r/m16 Jump near, absolute indirect, address given in r/m16 FF /4 JMP r/m32 Jump near, absolute indirect, address given in r/m32 EA cd JMP ptr16:16 Jump far, absolute, address given in operand EA cp JMP ptr16:32 Jump far, absolute, address given in operand FF /5 JMP m16:16 Jump far, absolute indirect, address given in m16:16 FF /5 JMP m16:32 Jump far, absolute indirect, address given in m16:32 Du må være enig i at JMP er lettere å skrive og forstå? eller MOV (Intel Instruction Set Referance) Opcode Instruction Description88 /r MOV r/m8,r8 Move r8 to r/m8 89 /r MOV r/m16,r16 Move r16 to r/m16 89 /r MOV r/m32,r32 Move r32 to r/m32 8A /r MOV r8,r/m8 Move r/m8 to r8 8B /r MOV r16,r/m16 Move r/m16 to r16 8B /r MOV r32,r/m32 Move r/m32 to r32 8C /r MOV r/m16,Sreg** Move segment register to r/m16 8E /r MOV Sreg,r/m16** Move r/m16 to segment register A0 MOV AL,moffs8* Move byte at (seg:offset) to AL A1 MOV AX,moffs16* Move word at (seg:offset) to AX A1 MOV EAX,moffs32* Move doubleword at (seg:offset) to EAX A2 MOV moffs8*,AL Move AL to (seg:offset) A3 MOV moffs16*,AX Move AX to (seg:offset) A3 MOV moffs32*,EAX Move EAX to (seg:offset) B0+ rb MOV r8,imm8 Move imm8 to r8 B8+ rw MOV r16,imm16 Move imm16 to r16 B8+ rd MOV r32,imm32 Move imm32 to r32 C6 /0 MOV r/m8,imm8 Move imm8 to r/m8 C7 /0 MOV r/m16,imm16 Move imm16 to r/m16 C7 /0 MOV r/m32,imm32 Move imm32 to r/m32 Det er maskinkode, det finnes hundre forskjellioge funksjoner for å gjøre tilnærmet samme ting, pluss at noen instruksjoner tar en, andre tar to, og andre der igjen tar tre byte. Kikk litt på general instruction format, det er ikke akkurat en dans på roser "Instruction prefixes, up to four prefixes of one byte eax (optional)" optional prefix, glimrende. (/off topic) Uansett, signed betyr at det siste bitet blir brukt til å bestemme om tallet er negativt eller positivt, unsigned betyr at det siste bitet blir brukt som vanlig. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå