Gå til innhold

C++ nybegynner spørsmål


Anbefalte innlegg

Heisann!

 

Jeg har lest og lært mye om C++ de siste 14-15 dagene og det er kjekt og se at jeg faktisk takler sprsåket veldig enkelt.

 

Men, jeg har kun jobbet med console code, altså at man utfører noe i console og får resultater samme vei.

 

Hvordan er det med C++ og utsende? jeg tenker, hvordan utformer man en applikasjon som i f.eks visual basic. Må man kode hver enkelt knapp i ett vindu osv? eller hvordan fungerer dette?

Lenke til kommentar
Videoannonse
Annonse

Man har noe som heter Forms, og knappelyttere.

 

Om man bruker Visual Studio, så kan du bare dra ut knapper og gi dem en ID, et navn osv. Deretter så skriver man en metode/actionlistener for hva som skal skje når man trykker på knappen.

 

Prinsippet for GUI-applikasjoner er å lage en knapp, plassere en knapp, lage en lytter, legge lytteren til knappen og skrive koden som skal skje når du trykker på knappen og lytteren blir aktivert.

 

Da kan man f.eks utføre kode der man forandrer teksten i en 'label' eller utfører en beregning av to tall som står i en tekstboks der du skriver inn tallene.

Endret av Gavekort
Lenke til kommentar
  • 1 måned senere...

Heisann!

 

Jeg har lest og lært mye om C++ de siste 14-15 dagene og det er kjekt og se at jeg faktisk takler sprsåket veldig enkelt.

 

Men, jeg har kun jobbet med console code, altså at man utfører noe i console og får resultater samme vei.

 

Hvordan er det med C++ og utsende? jeg tenker, hvordan utformer man en applikasjon som i f.eks visual basic. Må man kode hver enkelt knapp i ett vindu osv? eller hvordan fungerer dette?

 

14-15 dager er ikke så mye for å virkelig kunne forstå seg på C++.

 

Har du sett på elementer som:

- Pekere

- Virtuelle funksjoner

- Arv

- Operator overloading

- Templates

- Polymorphism

- Exceptions

- etc, etc

 

GUI er kult det ja, men ikke nødvendigvis det som trengs for å kunne lage kule ting.

 

Ting som kan sees på:

- Filsystem operasjoner (prøv å kartlegg alle mapper og filer i systemet ditt)

- Socket programmering (nettverkstjenester, kanskje lage et lite dos-verktøy for å ha det morro med routern din)

- Lag din egen klasse for håndtering av strenger, sleng på masse kule overloadinger og greier (for kunnskapensskyld)

 

Det er et hav at kule ting der ute, alt trenger ikke å ha en fancy knapp for å være bra =)

 

Ta en titt på et lite prosjekt jeg lagde for litt sia, bare konsoll basert. Det er et C++ program som gjemmer filer inne i -bmp bildefiler, uten at det detekteres (kan jo det, men ja). https://github.com/Maxtors/Stega

Lenke til kommentar
  • 4 uker senere...

Bare å bruke Qt. Eneste fornuftige valget...

Dette er jeg enig i. Managed C++ i Visual Studio med .NET og CLI er noe tåpelige greier (for ikke å snakke om at det er et helt annet språk enn C++).

Begynn med Qt, det er et fantastisk rammeverk.

 

Når det er snakk om GUI, er det, tro det eller ei, en svært lite viktig del av å kunne programmere godt. Jeg tar master i Computer Science, og vi driver ikke med GUI overhodet. Om det er et behov for det, lager vi GUI, men bare fordi det letter brukergrensesnitt ved behov for det. Sant nok, sammenhengen med at det er rimelig akademisk på universitetet stipulerer nok ingen store krav til GUI, men i praksis er det ofte mer behov for å kunne det, men da ofte gjennom repeterende kode. Derfor, spør du meg, er GUI ganske uinteressant og trivielt.

 

Les heller mer på temaene Valkyrex nevnte, de er viktige for å kunne programmere OOP godt.

 

For sakens skyld, skal du få en oppgave av meg. Lag, i C++, et fungerende hash table med

  • Pylomorphism (templates/generiske typer).
  • Operator-overloading for å legge til og fjerne elementer. F.eks. kan du la + bety å putte elementer, - for å fjerne dem, [] for å hente og sette elementer.
  • Lag en basisklasse (eller et "interface") med en hash-funksjon som bruker pekeren til objektet som utgangspunkt for hash-funksjonen (bruk "this"), og krev at alle nøkler i hashtabellen din utvider denne basisklassen. Du kan f.eks. bruke FNV-hashing.
  • Automatisk størrelse. Når antall elementer i hashtabellen overstiger k*kapasiteten til hashtabellen, skal hashtabellen utvides og alle elementer rehashes.

Lykke til!

Endret av LostOblivion
Lenke til kommentar
Bare å bruke Qt. Eneste fornuftige valget...

Dette er jeg enig i. Managed C++ i Visual Studio med .NET og CLI er noe tåpelige greier (for ikke å snakke om at det er et helt annet språk enn C++).

Begynn med Qt, det er et fantastisk rammeverk.

Dette er så sant. Jeg ser folk som stadig sitter og skal lage GUI programmer i C++/CLI. Det overhode ikke det som er hensikten med språket: det er først og fremst et språk som egner seg til å skrive wrappere rundt C++ biblioteker for bruk i .NET programmer (og nå C++/CLR som er for WinRT). Å sitte i dette språket og utvikle et program er helt meningsløst. Bruk det til det det egner seg til: skrive wrappere som du deretter kan benytte i C#.

C++/CLI er ikke C++ heller, Det er som C++/++ egentlig, fordi det ligger et CLR lag på toppen som tar seg av garbage collection på .NET objekter. Det kompilerer heller ikke normalt sett til native code, men til CLI (som kanskje kommer frem av navnet) men det kommer an på konteksten.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...