TheMaister Skrevet 9. juli 2011 Del Skrevet 9. juli 2011 Hvordan har du tenkt å snakke med noe som helst via system()? Hvis du bare kaller på eksterne programmer for å gjøre jobben bør du vurdere å skrive et shell script. Lenke til kommentar
Ståle Skrevet 13. juli 2011 Del Skrevet 13. juli 2011 Har et shellscript som kontrollerer enheten foreløpig. Tenkte å bare bruke det foreløpig. Men koden for å kjøre feks system( "~/mittskript.sh 1" ); bør vel ligge i en Node-klasse i Controller, og ikke i Node-modelklassen Kunne kanskje hatt NodeParser, som sjekker hvilke funksjoner Node objektet har, før det eventuelt gjør det jeg ber den om? nodeParser( node1 ).gjorNoe() ? Lenke til kommentar
Gjest Slettet+9871234 Skrevet 13. juli 2011 Del Skrevet 13. juli 2011 (endret) Har du vurdert å bruke en annen IDE? Jeg bruker code::blocks og trives godt med det. http://www.codeblocks.org/ Om du skal bruke et (en) gratis IDE (kompilator) er vel gode gamle Open(Watcom) http://www.openwatcom.org god. http://www.ocppug.org/ Meld dere gjerne inn her: om dere lurer på noe mer avansert events/11775931/?eventId=11775931&action=detail enn bruk av % modulus og == operatorene. (php har gått enda lengre og introdusert === operatoren http://www.oopschool.com/phpBB3/viewtopic.php?f=11&t=209) Dere har vel lært å kombinere % med ternary operatoren? Det kan bidra til svært effektiv koding i noen kontekster. Der er mange C++ kompilatorer. Let gjerne opp og studer koden til small C om du vil grave dypere (lære litt kompilator teori) og den fortsatt finnes på nettet. Man kan kode objekt-orientert i C også om man vil. Ja om man vil finne opp hjulet på nytt. Om det blir bedre enn det eksisterende C++ hjulet er et annet spørsmål. C++ er objektorientert C. Dansken Bjarne Strostrup http://www2.research.att.com/~bs/ som lagde C++ kunne C og simula og med den bakgrunnen lagde han C++ ved å "stjele" ting fra simula. Endret 13. juli 2011 av Slettet+9871234 Lenke til kommentar
TheMaister Skrevet 13. juli 2011 Del Skrevet 13. juli 2011 C++ er objektorientert C. Mulig hvis man ser på en veldig gammel versjon av C++ og C89, men disse to språkene er ganske, ganske så forskjellige i dag, kan nesten ikke sammenliknes. C99 og C++0x-kode virker som to helt forskjellige språk. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 14. juli 2011 Del Skrevet 14. juli 2011 (endret) C99 og C++0x-kode virker som to helt forskjellige språk. Kjenner ikke de nyeste versjonene til å kunne uttale meg om det. Mener du / dere at C nå har utviklet seg til et objektorientert språk som kan konkurrere med C++ (C++0x)? Fra Strostrups hjemmeside: Modified July 3, 2011 http://www2.research.att.com/~bs/C++0xFAQ.html C++ Incompatibilities The aforementioned features are rather impressive but one soon realizes that this means that C is no longer a subset of C++. There is a list of the major incompatibilities between the current ISO standards for C and C++ on David Tribble's webpage. At this point it is still too early to see if either C or C++ will be harmed by this development but it is clear that there will be some growing pains once C99 adoption becomes widespread. Bjarne Stroustrup mentioned in a recent interview with LinuxWorld that he would have liked for both languages to be compatible and would favor a technical committee whose express purpose would be integrating both languages, but doubts the possibility of this coming to pass. Stroustrup also contrasted how C's technical commitee decided to implement most of the added functionality via changes to the actual C language against the C++ approach which was by adding additional libraries. Kilde: http://www.kuro5hin.org/story/2001/2/23/194544/139 Se også http://home.datacomm.ch/t_wolf/tw/c/c9x_changes.html Endret 14. juli 2011 av Slettet+9871234 Lenke til kommentar
TheMaister Skrevet 17. juli 2011 Del Skrevet 17. juli 2011 (endret) Hvis du mener om C har fått funksjonalitet for å hjelpe til med objektorientert programmering, så nei. Er nok av prosjekter som er objektorienterte og skrevet i C, så trengs ikke akkurat. C99 er fortsatt C, men har mange små detaljer her og der som gjør språket mye mer behagelig å jobbe med. C++0x er en radikal utvikling fra C++98 på mange måter, men en nødvendig én. Stroustrup also contrasted how C's technical commitee decided to implement most of the added functionality via changes to the actual C language against the C++ approach which was by adding additional libraries. Mja, funksjonaliteten som std::initializer_list og lambdaer har kan ikke implementeres i C++-kode Endret 17. juli 2011 av TheMaister Lenke til kommentar
Gjest Slettet+9871234 Skrevet 20. juli 2011 Del Skrevet 20. juli 2011 (endret) Hvis du mener om C har fått funksjonalitet for å hjelpe til med objektorientert programmering, så nei. Er nok av prosjekter som er objektorienterte og skrevet i C, så trengs ikke akkurat. Man kan kode objekt-orientert i C også om man vil. Min utheving. Det var vel du som forvirret meg og andre med det utsagnet. Om man vil finne opp hjulet på nytt, er det selvsagt riktig var mitt svar. Mja, funksjonaliteten som std::initializer_list og lambdaer har kan ikke implementeres i C++-kode Et godt norsk ordtak kan her være på sin plass. Den som vil ha alt han ser får gråte når de andre ler. Med lambdaer, mener du slike annonyme funksjoner som kan implementeres i JavaScript / jQuery http://www.oopschool.com/phpBB3/viewtopic.php?f=32&t=223 ? Endret 20. juli 2011 av Slettet+9871234 Lenke til kommentar
GeirGrusom Skrevet 20. juli 2011 Del Skrevet 20. juli 2011 Lambda i C++0x: auto add = [](int a, int b) { return a + b }; int val = add(100, 100); Closure i C++0x: int a = 50, b = 100; auto add = [=](int multiplier){ return (a + b) * multiplier; } auto result = add(5); Lenke til kommentar
TheMaister Skrevet 21. juli 2011 Del Skrevet 21. juli 2011 (endret) Er også utrolig handy i for eksempel GUI-koding som er brukt svært mye i Phoenix-APIet. Button btn; btn.onTick = [this]() { ... }; Blir ikke stort enklere enn det Endret 21. juli 2011 av TheMaister Lenke til kommentar
GeirGrusom Skrevet 21. juli 2011 Del Skrevet 21. juli 2011 Er også utrolig handy i for eksempel GUI-koding som er brukt svære mye i Phoenix-APIet. Button btn; btn.onTick = [this]() { ... }; Blir ikke stort enklere enn det Event dreven utvikling gjør det vesentlig enklere å skille kode fra fremvisning, så jeg vil si lambda og closures er ganske velkommen i C++. Lenke til kommentar
Thomas. Skrevet 2. august 2011 Del Skrevet 2. august 2011 Har noen et eksempel på hvordan man kan få hele stien til der programmet kjøres fra? Hvis jeg f.eks kjører test.exe fra C:/ skal det returnere C:\test.exe. Hvis test.exe ligger i programfiler-mappen returneres C:\Program Files (x86)\test.exe. Lenke til kommentar
OldMan Skrevet 2. august 2011 Del Skrevet 2. august 2011 Hvis du kjører under windows så virker GetModuleFileName fint. Lenke til kommentar
Forumforumforum Skrevet 1. september 2011 Del Skrevet 1. september 2011 Er nybegynner innen C++ Har bare drevet med det et par timer nå. Trenger tips til små øvingsoppgaver av den enkle sort, slik jeg kan pusle med litt i starten. Tips til oppgaver eller sider, anyone? Lenke til kommentar
stockhauzen Skrevet 1. september 2011 Del Skrevet 1. september 2011 Er nybegynner innen C++ Har bare drevet med det et par timer nå. Trenger tips til små øvingsoppgaver av den enkle sort, slik jeg kan pusle med litt i starten. Tips til oppgaver eller sider, anyone? Et enkelt klassesystem kan väre en enkel (og samtidig interesant) oppgave. F.eks. pröv å skrive et matrisebibliotek, eller kvaternioner. Pröv å skrive ryddig frå selve begynnelsen, med ctorer, copyctorer, overloaded = osv. Kan läre mye av det. Dette vil hjelpe også å läre STL sine container-klasser. Et annet prosjekt kan väre håndtering av sträng - f.eks. en enkel chatterbot. Ikke noe kjedelig, og svärt pedagogisk. Lenke til kommentar
Lycantrophe Skrevet 6. september 2011 Del Skrevet 6. september 2011 Jeg har et lite problem - jeg skriver en ncurses-basert tetris-klone og trenger en timer. Ettersom den skal være ncursesbasert er SDL og tilsvarende ikke ønskelig, heller ikke QTime. Finnes det noe godt slikt i standard C++? Noen tips til hvordan jeg skal kunne la timeren gå uavhengig av om redraw-metoden blir kalt eller ikke hadde vært fint. Altså at den teller uavhengig av hva som gjøres, og at tegnignen kalles hver gang bruker gir input. En siste sak - hvordan kan jeg holde dette i en while-loop uten at CPU-bruk spretter opp til 100%? Eksempler og forklaringer mottas med takk, første gang jeg skriver et interaktivt program. Lenke til kommentar
GeirGrusom Skrevet 7. september 2011 Del Skrevet 7. september 2011 Operativsystemet har som regel timer funksjonalitet, men hvis det skal være ncurses basert så er vel ikke dette aktuelt. Utenom det så har du timer.h fra C som kan brukes. Når det gjelder CPU-bruk så må du la programmet ditt gi fra seg kontrollen. Dette kan du bruke pthread.h til, som er et posix bibliotek. Denne inkluderer sched.h som skal ha funksjonen sched_yield som skal få tråden til å gi ifra seg kontroll. Under Unix har du også funksjonen sleep() i unistd.h som er mer eller mindre synonym med Windows funksjonen Sleep. Begge kan også brukes: #ifdef WIN32 #include <Windows.h> #define SLEEP(MS) Sleep(MS) #else #include <unistd.h> #define SLEEP(MS) sleep(MS) #endif Lenke til kommentar
Lycantrophe Skrevet 7. september 2011 Del Skrevet 7. september 2011 Jeg så sleep, men problemet kommer når brukeren gir input mellom periodene, noe som kaller en redraw. kan jeg få den til å operere uavhengig av sleep()? Lenke til kommentar
GeirGrusom Skrevet 7. september 2011 Del Skrevet 7. september 2011 Du vil typisk bare la den sove i millisekunder av gangen, alt fra 0 til 20 ms er vanligvis nok. sched_yield vil vel oppføre seg mer eller mindre likt som sleep(0). Typisk vil hovedløkka i programmet gå kontinuerlig med bare små pauser (som sleep(0)) for å hindre 100% CPU-bruk. Ikke bruk sleep for å bestemme hvor raskt programmet skal gå. Lenke til kommentar
Lycantrophe Skrevet 7. september 2011 Del Skrevet 7. september 2011 Det var en god idé, skal prøve det senere i dag. Takk skal du ha. Lenke til kommentar
GeirGrusom Skrevet 7. september 2011 Del Skrevet 7. september 2011 Du har sikkert alt du trenger nå, men her er noe eksempel pseudo-kode: int64 last_tick; main() { last_tick = timer_tick(); // Forutsatt at timer_tick her er en høyfrekvenstimer (for eksempel antall klokkesykluser på prosessoren) while(application_is_running) { int64 tick = timer_tick() double frame_time = (tick - last_tick) / timer_frequency(); // Regn ut antall sekunder siden sist frame. timer_frequency er frekvensen på timeren, for eksempel 16 MHz double fps = 1.0 / frame_time; // Regn ut FPS. Kan bruke RMS eller lignende for å få et bedre resultat for each(auto child in scene) child.process(frame_time); // Flytt brikker etc. etter hvor mye tid som har gått, og hvilke taster en trykker etc. last_tick = tick; sleep(0); // thread yield } } 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å