Olen juuri lukenut c -kirjan ja menee hetki ennenkuin saan kirjastosta lainaan c++ -kirjan, joten nyt haluaisin tietää, mitkä ovat ne c:stä opittavat pahat tavat, joita ei kannata opetella käyttämään?
No enpä oikeen tiedä mikä on paha tapa ja mikä ei mut mitä nyt tuli äkkiseltään mieleen asioista jotka kannattaa huomata kun siirtyy c:stä c++:aan, niin ne on tässä:
C-koodaajat käyttää liian herkästi pointtereita. Referenssejä olis hyvä käyttää selkeyden vuoks aina kun mahollista. Nopeuden kannalta käyttö on ihan sama, referenssit on toteutettu pointtereilla.
Globaaleja muuttujia tulisi käyttää vähän, kaikki on tapana survoa luokkiin, jotta niitä voi sitte tehä monta. Itseasias javassa ei edes ole globaaleja muuttujia.
Puhtaassa c:ssä muuttujat määritellään aina koodiblokin alussa (eli {} sulkeiden alussa), ellei ne oo globaaleja. C++:ssa ne on käsittääkseni tapana määritellä niin myöhään kuin mahollista, jotta koodinpalasen voi helposti siirtää tarvittavine muuttujineen muualle (eli modulaarisuutta).
C:ssä pyritään usein koodin nopeuteen ja vähäiseen muistin käyttöön. Tää ei oo niinkään tapana c++:ssa, eli vaihtoehto joka on nopeinta koodata ja on selkeä on yleensä riittävä (eli esimerkiks string-luokan käyttö char-taulukon sijaan).
Jos nyt haluaa, toki C++:sastakin saa tehokasta koodia, mutta oliot syövät joka tapauksessa tehoa, (jo pelkästään cinnien ja couttien käyttö) ja tehokkuus on c:ssä.
Mitä nyt modulaarisuuteen, selkeys on parempi, jos C++:ssa muuttujien esittelyt laitetaan sinne alkupäähän, mutta tietääkseni blokin eteen ei saa laittaa niitä.
proguru: cin >> ja cout << ei ole sen hitaampia kuin printf().
lainaus:
C:ssä pyritään usein koodin nopeuteen ja vähäiseen muistin käyttöön. Tää ei oo niinkään tapana c++:ssa, eli vaihtoehto joka on nopeinta koodata ja on selkeä on yleensä riittävä (eli esimerkiks string-luokan käyttö char-taulukon sijaan).
Kysymyshän on kustannustehokkuudesta - jos ohjelmointihinta 187 EUR tunti, ei asiakas halua maksaa siitä, että ohjelma on hieman nopeampi, vaan ostaa mieluummin vähän nopeampaa rautaa, jossa ohjelma voi pyöriä ja haluaa, että ohjelmoija toteuttaa ohjelman ohjelmoinnin kannalta nopeimmalla tavalla.
Muuttujien esittelypaikka on aivan makuasia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.