Dus je vindt het met en zonder header-files een zooitje?quote:Op woensdag 11 december 2013 22:31 schreef robin007bond het volgende:
[..]
Ik weet dat het kan, maar dan wordt het snel een rotzooitje.
Plus dat je methodes in een goede volgorde moeten staan.
Eigenlijk wel.quote:Op woensdag 11 december 2013 22:38 schreef trancethrust het volgende:
[..]
Dus je vindt het met en zonder header-files een zooitje?
Java dwingt je idd echt om oop te doen. C++ totaal niet. Wat ik alleen wel echt schijt irritant vind aan Java is dat het geen pointers en references heeft. Ja ik weet ook waaromquote:Op woensdag 11 december 2013 22:41 schreef robin007bond het volgende:
[..]
Eigenlijk wel.
Sorry. Het is eerder dat ik zelf moeite heb structuur aan projecten aan te brengen terwijl ik dat bij andere talen wel heb. Maar dit komt ook omdat ik niet veel ervaring heb met C++ in vergelijking met die andere talen denk ik.
Ik heb nog een goed boek hier waar ik eens doorheen moet.
Alles in java is een pointer... behalve de fundamentele types (dacht ik?)quote:Op donderdag 19 december 2013 17:07 schreef netolk het volgende:
[..]
Java dwingt je idd echt om oop te doen. C++ totaal niet. Wat ik alleen wel echt schijt irritant vind aan Java is dat het geen pointers en references heeft. Ja ik weet ook waarom
Goed dit was mijn beklag over Java weer
Onderwater wel iddquote:Op donderdag 19 december 2013 19:28 schreef t4rt4rus het volgende:
[..]
Alles in java is een pointer... behalve de fundamentele types (dacht ik?)
Theoretisch wel ja, maar het werkt toch niet (altijd) zoals ik het zou verwachten (en in C++ zeker wel aan de praat zou krijgen)quote:Op donderdag 19 december 2013 19:28 schreef t4rt4rus het volgende:
[..]
Alles in java is een pointer... behalve de fundamentele types (dacht ik?)
1 2 3 4 5 6 7 8 9 10 11 | class InputField{ std::string _DATA; unsigned short _X,_Y; // location unsigned short _DISPLAY_LENGTH; unsigned short _MAX_LENGTH; // 0 if no max length std::string _ONLY_ALLOWED; // empty if there are no restrictions for input bool _SELECTED; public: InputField(unsigned short x,unsigned short y,unsigned short display_length,bool selected=false,unsigned short max_length=0,std::string only_allowed=""); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class InputFieldController{ std::vector<InputField> _INPUTFIELDS; std::vector<InputField>::iterator _SELECTED; public: void InputFieldController::push_back(InputField push){ _INPUTFIELDS.push_back(push); if(push.getSelected()){ if(_INPUTFIELDS.size() == 1){ _SELECTED = _INPUTFIELDS.begin(); return; } _SELECTED->setSelected(false); _SELECTED = _INPUTFIELDS.end()-1; } } }; |
1 2 3 4 | myInputFields.push_back(InputField(12,1,35,true)); myInputFields.push_back(InputField(74,1,5)); myInputFields.push_back(InputField(29,2,50)); |
1 2 | myInputFields.push_back(InputField(10,1,70,true)); myInputFields.push_back(InputField(28,3,2,false,2,"0123456789")); |
Heb je ook nog errors?quote:Op dinsdag 29 april 2014 16:54 schreef netolk het volgende:
Even een vraagje:
Ik heb een vector iterator en die laat m'n programma crashen als ik iets toevoeg aan die vector.
Maar dat doet ie alleen als ik bepaalde fields van het object gebruik:
[ code verwijderd ]
[ code verwijderd ]
Als ik dit doe dan werkt het gewoon
[ code verwijderd ]
maar als ik dit probeer dan crashed ie
[ code verwijderd ]
Ik vermoed dus dat ie de string niet zo leuk vind maar ik begrijp niet waarom, kan iemand mij uitleggen waarom het niet werkt?
Nee, alles compiled gewoon en dan APPCRASH. Dus dan krijg je zo'n popup ding van windows met dat het niet meer werkt.quote:
Ja dus wat is je error?quote:Op dinsdag 29 april 2014 19:37 schreef netolk het volgende:
[..]
Nee, alles compiled gewoon en dan APPCRASH. Dus dan krijg je zo'n popup ding van windows met dat het niet meer werkt.
Ik denk dus dat die iterator niet valid meer is maar ik snap dus niet waarom hij bij de andere wel gewoon valid is
Je probleem is _selected->setSelected(false);quote:==19390== Invalid write of size 1
==19390== at 0x4009AF: InputField::setSelected(bool) (foo.cxx:10)
==19390== by 0x400A31: InputFieldController::push_back(InputField) (foo.cxx:25)
==19390== by 0x400927: main (foo.cxx:35)
==19390== Address 0x0 is not stack'd, malloc'd or (recently) free'd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | struct InputFieldController{ std::vector<InputField> _inputfields; unsigned _select; void push_back(InputField field) { if(field.getSelected()) { if(!_inputfields.empty()) _inputfields[_select].setSelected(false); } _inputfields.push_back(field); _select = _inputfields.size() - 1; } }; |
hmm, wat ik al vermoedde dus die _SELECTED is niet valid maar die iterators kunnen dus invalid worden als je iets toevoegd?quote:Op dinsdag 29 april 2014 19:38 schreef t4rt4rus het volgende:
[..]
Ja dus wat is je error?
Segmentation fault?
Maar om dat te krijgen moet je ook iets dereferecen, dus wat doe je daarna?
-edit-
In het vervolg moet je even een testcase schrijven voor ons
http://ideone.com/RPGgAC
valgrind
[..]
Je probleem is _selected->setSelected(false);
_selected wijst nergens naar, dus segmentation fault
Dus wat je moet doen is eerst kijken of _selected ergens naar wijst.
Daarnaast als je een push_back doet hoeft je _selected ook al niet meer valid te zijn.
-edit- (nog geen reactie, dus ga ik maar even verder...)
Je kan hier beter geen iterator gebruiken, die dingen zijn om te iteraten niet om een element bij te houden in een vector.
Een index in de vector kan je wel bij houden, wordt het ook een stuk simpeler van.
[ code verwijderd ]
Ohja en misschien niet volledig hoofdletters gebruik in variabelen.quote:Op woensdag 30 april 2014 10:43 schreef netolk het volgende:
[..]
hmm, wat ik al vermoedde dus die _SELECTED is niet valid maar die iterators kunnen dus invalid worden als je iets toevoegd?
Dacht dat het eigenlijk gewoon soort van pointers waren met wat meer opties![]()
Anyway bedankt denk dat ik idd dan maar een index bijhoud
hmm, goed punt.quote:Op donderdag 1 mei 2014 15:46 schreef t4rt4rus het volgende:
[..]
Ohja en misschien niet volledig hoofdletters gebruik in variabelen.
Lijkt net of je allemaal macro's gebruikt.
1 2 3 | SetStdHandle(STD_INPUT_HANDLE,hstdOut) SetStdHandle(STD_OUTPUT_HANDLE,hstdOut) SetStdHandle(STD_ERROR_HANDLE,hstdOut) |
Speciaal voor C++? QTCreator is denk ik wel de prettigste. Die IDE kun je ook gebruiken zonder dat je per se het QT framework zelf moet gebruiken in je applicatie.quote:Op zondag 25 mei 2014 14:48 schreef Toryu het volgende:
Wat is een goede IDE voor Linux? Ik gebruik nu Eclipse CDT, maar ik vind het traag en niet gebruiksvriendelijk. Zeker in vergelijking met VS op Windows. Wat raden jullie aan?
Succes. Ik ben benieuwd naar je ervaring met QTCreator. Daar ben ik wel benieuwd naar.quote:Op zondag 25 mei 2014 15:01 schreef Toryu het volgende:
Ah, die kan ik wel proberen inderdaad. Ik had al naar netbeans en code::blocks gekeken, maar vond ze beide tegenvallen.
Ik snap het wel Vroeger gebruikte ik netbeans voor java was takke traag, toen ben ik over gestapt naar notepad++ (en c++ ). Moest laatst voor m'n minor java code schrijven in eclipse dat was wel redelijk al deed ik vooral in het begin het liever in notepad++.quote:Op zondag 25 mei 2014 15:05 schreef robin007bond het volgende:
[..]
Succes. Ik ben benieuwd naar je ervaring met QTCreator. Daar ben ik wel benieuwd naar.
Wat je niet prettig vindt aan Eclipse snap ik eerlijk gezegd niet zo. Erg traag is het niet en gebruiksvriendelijk vind ik het wel. Net als NetBeans overigens.
Ja, meestal gebruik ik ook gewoon een tiling window manager en vim. Dat is goed genoeg.quote:Op zondag 25 mei 2014 15:56 schreef netolk het volgende:
[..]
Ik snap het wel Vroeger gebruikte ik netbeans voor java was takke traag, toen ben ik over gestapt naar notepad++ (en c++ ). Moest laatst voor m'n minor java code schrijven in eclipse dat was wel redelijk al deed ik vooral in het begin het liever in notepad++.
C++ doe ik nog steeds zonder IDE zie de meerwaarde er niet zo van
Oké, dat is vast hoe eckte pro's het doen. Maar hij vroeg wel specifiek om een IDEquote:Op zondag 25 mei 2014 15:56 schreef netolk het volgende:
[..]
Ik snap het wel Vroeger gebruikte ik netbeans voor java was takke traag, toen ben ik over gestapt naar notepad++ (en c++ ). Moest laatst voor m'n minor java code schrijven in eclipse dat was wel redelijk al deed ik vooral in het begin het liever in notepad++.
C++ doe ik nog steeds zonder IDE zie de meerwaarde er niet zo van
Haha, ben maar gewoon een amateurtje hoorquote:Op zondag 25 mei 2014 18:27 schreef Drxx het volgende:
[..]
Oké, dat is vast hoe eckte pro's het doen. Maar hij vroeg wel specifiek om een IDEDan vind ik het ook wel een beetje gek als je Eclipse en NetBeans niets vindt
Voor C++ onder Linux kun je het best gewoon een goede editor en geen IDE. Visual Studio is gewoon een uitstekende IDE (en het enige goede stuk software dat Microsoft heeft voortgebracht). Maar als er geen uitstekende IDE bestaat, kun je het best geen IDE gebruiken, is mijn ervaring. Je wilt geen IDE gebruiken die "wel oké" is.quote:Op zondag 25 mei 2014 14:48 schreef Toryu het volgende:
Wat is een goede IDE voor Linux? Ik gebruik nu Eclipse CDT, maar ik vind het traag en niet gebruiksvriendelijk. Zeker in vergelijking met VS op Windows. Wat raden jullie aan?
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |