spørgsmål om C++

Tags:    c++

<< < 12 > >>
Jeg er næsten lige begyndt på at læse C++ og der er nogle ting jeg ikke rigtig forstår ved det.

Console programmering er jo forholdsvis meget nem at lege med, men hvad skal man bruge det til? (kender meget til php som ligner det 65%)
API bliver da brugt til at lave programmer osv. med så forstår ikke hvad man bruger console til.

Og da jeg vil igang med at lave 3d software, som evt. et program til at lave 3d models med, er det så ikke API jeg skal lege med? og så som en lommeregner.

på forhånd tak.

btw. hvordan skal man forholde sig til C og C++ ? hvad skal an begynde med når jeg vil lave programmer til alt mulig?

john sørensen



Indlæg senest redigeret d. 09.01.2009 11:19 af Bruger #9005
15 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
API = Application Programming Interface.

Så det du siger give ikke så meget mening :)
Men du mener nok Win32 API'et, som, jo, er til at lave "vinduer" med.

Hvad man kan bruge console til? Alt!
Alle kommandoer du kører i en kommando linje, er jo console, (bortset fra hvis du kører grafiske programmer fra det)

Nå, back til topic: Du skal nok kigge på enten OpenGL, eller DirectX (Direct3D)





Hej John,

Jeg tror at du mixer tingene sammen.

Du skal ikke tænke på Console som en del af C++. Og der er ingen krav om at Console bliver benyttet til C++ programmer.

Consol vinduet er en del af en standard windows komponent som programmer har og benytter. Det er denne komponent som C++ som standard skriver tekst output til. Det er muligt at omdefinere hvad tekst output skal skrives til.

Programmer og API'er skal altså ikke køres fra konsollen.

Du benytter tekst basseret output, eftersom det er meget let at komme igang med, og meget let at forstå og fortolke output. Du ville have sværere ved at forstå og fortolke en specifik nuance af farven blå - og det ville være sværere at lave programmer som viste dette.

For at kunne komme med advanceret output, er der lavet "programmering pakker" (API), hvor du giver disse data og de vidrebehandler data for dig. OpenGL er et 3D API, og det mest kendte andet 3D API er DirectX. Disse er væsentligt tungere at arbejde med, og det anbefales at du ikke rør disse indtil du kan det grundlæggende i C++.

Inkluderer du OpenGL eller DirectX funktionalitet, lader du dit C++ program sende beregnede tal til disse klasser (i pakkerne, API'et), som så beslutter sig for at representere data som 3D data.

Oftest når der programmerest til OpenGL eller DirectX suppleres der med et Konsol vindue, hvor relevant debug data udskrives. Dette er udvalgt data fra programmet.

Du spørger hvad konsol programmering skal bruges til;
- Programmer som ønsker tekst basseret output i denne form.
- Tekst representation af programdata
- Debuggig
- ØVELSE I SPROGET

Ønsker du at begynde på 3D programmering, anbefales det at du har et godt kendskab til programmerings sproget. Du kan benytte API'er til dette. Gode starts steder er;
- OpenGL
- DirectX
- Ogre3D
- XNA

I henhold til C og C++, så er C mere maskinnært - det tager væsentligt længere tid at få funktionalitet ud af. Der er et langt mindre standard API i C, men C kan optimeres til at køre hurtigere og virker på flere arkitekturer. Du bør holde dig til C++ hvis du ønsker at udvikle normale programmer med vinduer i windows. C suppleres med til yderst tunge mattematisk funktionalitet.

Med venlig hilsen
Ieet






har læst en stor guide ed OpenGL :) tak, men nej jeg har jo som sagt ikke forstået det så meget, men API mener jeg win32 api ;) dvs. man skal bruge console sammen med API? (måske lyder jeg dum men vil gerne ha det på det rene)
man kan lave vinduet i API og derefter kalde en funktion fra normal(console) ?






Det er nemmere at komme til og finde guides når man først ved hvordan det hænger sammen, atm. forstår jeg jo ikke særlig meget



har læst en stor guide ed OpenGL :) tak, men nej jeg har jo som sagt ikke forstået det så meget, men API mener jeg win32 api ;) dvs. man skal bruge console sammen med API? (måske lyder jeg dum men vil gerne ha det på det rene)
man kan lave vinduet i API og derefter kalde en funktion fra normal(console) ?




Der findes API'er til alt muligt. Grafik (vinduer og den slags), netværk, konsol, kryptering, 3D, 2D, matematik, ooooog så videre.

Store programmer bygges af mange små komponenter, og at lave et grafisk program til at teste hver enkelt vil tage for lang tid. Så er konsol programmering meget nemmere.
Hvis du f.eks. skal lave en klasse, som kan indlæse en ini-fil, så vil det tage meget lang tid, at lave et grafisk program til at teste den, mens et konsol program kan laves på 5 minutter.

Derudover er der meget, man kan bruge konsol programmer til. Se bare hvor meget konsollen (shell'en) bruges af os Linux folk.

Det ér sgu meget nemmere at skrive:

cp some_file /some/other/destination

...end at bruge musen, så konsol programmer er meget nyttige.



Kan man lave vinduet via API og derefter kalde en funktion fra console ^^??

eller fungere det på en hel anden måde?



Kan man lave vinduet via API og derefter kalde en funktion fra console ^^??

eller fungere det på en hel anden måde?


API betyder Application Programming Interface og er et sæt funktioner til at udføre én eller anden type opgave.

Windows API'et er et sæt af funktioner til at åbne vinduer, vise knapper, håndtere events (klik på knapper, tastatur tryk, flyt med musen, osv.) og meget andet.

Du kan kalde et hvilket som helst API fra konsollen...også Windows.



I henhold til C og C++, så er C mere maskinnært - det tager væsentligt længere tid at få funktionalitet ud af. Der er et langt mindre standard API i C, men C kan optimeres til at køre hurtigere og virker på flere arkitekturer. Du bør holde dig til C++ hvis du ønsker at udvikle normale programmer med vinduer i windows. C suppleres med til yderst tunge mattematisk funktionalitet.


Vås!
C++ er "bare" en udviddelse til C.

Windows API'et er skrevet i C og er beregnet til at blive kaldt fra C og sprog, understøtter C calling convention...derunder C++. Men man bør ikke bruge Windows API'et direkte, men i stedet bruge én af de mange API'er, som er bygget ovenpå, og som gør éns program mere portabelt...GTK+ (skrevet i C), wxWidgets (skrevet i C++) eller andet.

C er hverken hurtigere eller langsommere end C++. Mange standard C++ komponenter (deriblandt stl) er skrevet til at være lette at bruge og ikke til at være lynhurtige, og det får nogle til at tro, at C++ er langsommere end C, og det er ikke sandt.

Dét, som C++ tilføjer til C, er en direkte understøttelse af objekt orienterede principper (noget du også kan lave i C, men mere manuelt), og i en verden, hvor OO er gud, så vinder C++ over C. Specielt på uddannelserne og i mange firmaer.

Hvad man så ender med at bruge er mere baseret på religion. Personligt foretrækker jeg C frem for C++.





Hej Robert,

Vær opmærksom på at dette indlæg ikke vil være nyttigt for trådstarter, eftersom det er en religionskrig.

Fed debat.

C og C++ er "nært beslægtede", men prøv en implicit konvertering af en void* pointer i C++ eller et variabel længde array.

Det var ikke afviklingen af C koden jeg mente gik hurtigere end C++ koden, men eftersom C er procedure baseret er det ofte lettere at optimere koden til at være mere effektiv.

Med venlig hilsen
Ieet





mange tak for svaret Ieet ^^
Har købt 2 bøger begge bygger på console programmering, dvs. det bare er bøger man kan starte med for det grundlæggende og derefter gå over til API, og videre til 3d altså OpenGL eller de andre:)?

skal lige være sikker på jeg har forstået ret:P



<< < 12 > >>
t