Ἀπὸ C σὲ C++

Ο τομέας μας. ;)
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Ἀπὸ C σὲ C++

Δημοσίευση από Κηπουρίδης »

Τὸ θέμα μιλάει ἀπὸ μόνο τοῦ. Τί προτείνουμε γιὰ ἕναν ἔμπειρο χρήστη C πού θέλει νὰ μάθει C++ ( γιά ἐπίπεδο ΠΔΠ μιλάω ). Ξεκίνησα http://www.cplusplus.com/doc/tutorial/ , ὅπως λέει στὸ instructions for use, άπὸ τὸ classes καὶ μετά, thanks to Chris. Δεκτὲς κὶ ἄλλες ἰδέες.
Υ.Γ.: Ὄχι Letmegooglethatforyou. Κάτι δοκιμασμένο 8-) .
Τελευταία επεξεργασία από το μέλος Κηπουρίδης την Σάβ Σεπ 04, 2010 6:22 pm, έχει επεξεργασθεί 2 φορές συνολικά.
Λύσεις θεμάτων ΠΔΠ: https://pdp-archive.github.io/
Μπούσουλας διαβάσματος ΠΔΠ: http://snf-800715.vm.okeanos.grnet.gr/PDP/
Tutorials: https://kallinikos.github.io/
Επίσημο forum ΠΔΠ: https://www.pdpforum.eu.org/forum/
pman
Δημοσιεύσεις: 419
Εγγραφή: Τρί Φεβ 10, 2009 9:49 pm

Re: Από C σε C++

Δημοσίευση από pman »

Εγώ σε έναν έμπεριο χρήστη της C θα πρότεινα να αγοράσει ένα βιβλίο C++ όπως το "Πλήρες εγχειρήδιο της C++" το οποίο είναι πολύ καλό + ότι κάνει αναφορά στην STL.
Αφού διαβάσει το βιβλίο και πιστεύει ότι έχει κατανοήσει τις γνώσεις του ας προχωρίσει σε κάτι προχωριμένο. Κινήσεις για επίπεδο ΠΔΠ,ΙΟΙ,ΒΟΙ πρέπει να γίνονται ομαλά και όχι άμεσα.
chris
Δημοσιεύσεις: 528
Εγγραφή: Κυρ Δεκ 28, 2008 9:27 am

Re: Από C σε C++

Δημοσίευση από chris »

sotiris έγραψε:Εγώ σε έναν έμπεριο χρήστη της C θα πρότεινα να αγοράσει ένα βιβλίο C++ όπως το "Πλήρες εγχειρήδιο της C++" το οποίο είναι πολύ καλό + ότι κάνει αναφορά στην STL.
Αφού διαβάσει το βιβλίο και πιστεύει ότι έχει κατανοήσει τις γνώσεις του ας προχωρίσει σε κάτι προχωριμένο. Κινήσεις για επίπεδο ΠΔΠ,ΙΟΙ,ΒΟΙ πρέπει να γίνονται ομαλά και όχι άμεσα.
Έχω το πλήρες εγχειρίδιο της C, και είναι 900+ σελίδες και το βρήκα πολύ βαρύ χωρίς λόγο. Υποψιάζομαι πως και το "πλήρες εγχειρίδιο της C++" αρχίζει με απλά πράγματα που υπάρχουν και στην C, ενώ μόνο το 30% του βιβλίου θα ενδιαφέρει πραγματικά κάποιον που ξέρει C. Και να διαβάσεις ένα ολόκληρο βιβλίο 900 σελίδων για να μάθεις C++, όταν τις 450 σελίδες τις ξέρεις απ'έξω και ανακατωτά; Κρίμα είναι... Όσο για STL, μην το συζητάμε, δεν χρειάζεται βιβλίο:
http://www.cplusplus.com/reference/stl/
Μετα από 397 δημοσιεύσεις, έβαλα και υπογραφή.
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από thetrojan01 »

http://www.cprogramming.com/tutorial.html
Κοίτα να δεις, εγώ ξεκίνησα με C++, με το βιβλίο C++ from the ground up... οπότε δεν έχω και πολλές άλλες προτάσεις... :D

ΔΕΣ ΑΥΤΟ: http://www.cprogramming.com/tutorial/c-vs-c++.html :D πιστεύω θα σε καλύψει για την ώρα :P
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
Άβαταρ μέλους
kernelpanic
Δημοσιεύσεις: 404
Εγγραφή: Κυρ Δεκ 21, 2008 8:16 pm
Τοποθεσία: Αθήνα

Re: Ἀπὸ C σὲ C++

Δημοσίευση από kernelpanic »

Μάθε πώς δουλεύουν τα template, οι υπερφορτωμένοι τελεστές, και το this. Δε χρειάζεσαι άλλες ανατριχιαστικές λεπτομέρειες ;)
99 little bugs in the code,
99 bugs in the code,
Fix one bug,
Compile again,
104 little bugs in the code.
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από thetrojan01 »

αχα, καθώς επίσης,
να έχεις υπόψιν σου ότι πολλές φορές το
foo(myclass& obj);

είναι καλύτερο του
foo(myclass* obj);

και φυσικά χρησιμοποιείς vectors και τα άλλα μαζοχιστικά της STL... :lol:
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
pman
Δημοσιεύσεις: 419
Εγγραφή: Τρί Φεβ 10, 2009 9:49 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από pman »

kernelpanic έγραψε:Μάθε πώς δουλεύουν τα template, οι υπερφορτωμένοι τελεστές, και το this. Δε χρειάζεσαι άλλες ανατριχιαστικές λεπτομέρειες ;)
Στα πρότυπα καλύτερα επικέντρωση στις συναρτήσεις παρά στην υλοποίηση μίας ολόκληρης κλάσης.
π.χ.
template <class X>
X Swap( X &a , X &b){
X temp=a;
a=b;
b=temp;
}

Αυτή η Swap δουλεύει για int , double,float και για τα πάντα.
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από thetrojan01 »

sotiris έγραψε: Στα πρότυπα καλύτερα επικέντρωση στις συναρτήσεις παρά στην υλοποίηση μίας ολόκληρης κλάσης.
Γιατί; :?:
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
pman
Δημοσιεύσεις: 419
Εγγραφή: Τρί Φεβ 10, 2009 9:49 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από pman »

thetrojan01 έγραψε:
sotiris έγραψε: Στα πρότυπα καλύτερα επικέντρωση στις συναρτήσεις παρά στην υλοποίηση μίας ολόκληρης κλάσης.
Γιατί; :?:
Επειδή φτιάχνοντας μία ολόκληρη κλάση προτύπου κάνεις πιο πολύπλοκα τα πράγματα για εσένα στον διαγωνισμό "Καταρχάς σκοπός σου δεν είναι να φτιάξεις αντικείμενα". Επίσης είναι πιο αργές από τις class , struct και τους κανονικούς πίνακες :ugeek: .
chris
Δημοσιεύσεις: 528
Εγγραφή: Κυρ Δεκ 28, 2008 9:27 am

Re: Ἀπὸ C σὲ C++

Δημοσίευση από chris »

Δείτε αυτό. Διαβάστε το, έχει πλάκα άλλα μην ψαρώνετε:
Stroustrup:
Well, it's been long enough, now, and I believe most people
have figured out for themselves that C++ is a waste of time but,
I must say, it's taken them a lot longer than I thought it would.
Stroustrup:
It was only supposed to be a joke, I never thought people would
take the book seriously. Anyone with half a brain can see that
object-oriented programming is counter-intuitive, illogical and
inefficient.
Μετα από 397 δημοσιεύσεις, έβαλα και υπογραφή.
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από thetrojan01 »

sotiris έγραψε:
thetrojan01 έγραψε:
sotiris έγραψε: Στα πρότυπα καλύτερα επικέντρωση στις συναρτήσεις παρά στην υλοποίηση μίας ολόκληρης κλάσης.
Γιατί; :?:
Επειδή φτιάχνοντας μία ολόκληρη κλάση προτύπου κάνεις πιο πολύπλοκα τα πράγματα για εσένα στον διαγωνισμό "Καταρχάς σκοπός σου δεν είναι να φτιάξεις αντικείμενα". Επίσης είναι πιο αργές από τις class , struct και τους κανονικούς πίνακες :ugeek: .
Ααα τώρα μάλιστα - οκ, στον διαγωνισμό.
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
Άβαταρ μέλους
kernelpanic
Δημοσιεύσεις: 404
Εγγραφή: Κυρ Δεκ 21, 2008 8:16 pm
Τοποθεσία: Αθήνα

Re: Ἀπὸ C σὲ C++

Δημοσίευση από kernelpanic »

thetrojan01 έγραψε:foo(myclass& obj);
Το ξέχασα αυτό...

Αυτό που λες, φίλτατε Κηπουρίδη, το όρισμα με το αμπερζάντι, δεν είναι ένα αντίγραφο της παραμέτρου που έδωσες για να καλέσεις τη συνάρτηση, αλλά η ίδια μεταβλητή που χρησιμοποίησες έξω από τη συνάρτηση, και έτσι να της φέρεσαι.

Κώδικας: Επιλογή όλων

void f(int i){
   i=1;
}

void g(){
    int i=0;
    f(i);
    assert(!i);//i==0
}

Κώδικας: Επιλογή όλων

void f(int &i){
   i=1;
}

void g(){
    int i=0;
    f(i);
    assert(i);//i==1
}
99 little bugs in the code,
99 bugs in the code,
Fix one bug,
Compile again,
104 little bugs in the code.
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από Κηπουρίδης »

kernelpanic έγραψε:
thetrojan01 έγραψε:foo(myclass& obj);
Το ξέχασα αυτό...

Αυτό που λες, φίλτατε Κηπουρίδη, το όρισμα με το αμπερζάντι, δεν είναι ένα αντίγραφο της παραμέτρου που έδωσες για να καλέσεις τη συνάρτηση, αλλά η ίδια μεταβλητή που χρησιμοποίησες έξω από τη συνάρτηση, και έτσι να της φέρεσαι.

Κώδικας: Επιλογή όλων

void f(int i){
   i=1;
}

void g(){
    int i=0;
    f(i);
    assert(!i);//i==0
}

Κώδικας: Επιλογή όλων

void f(int &i){
   i=1;
}

void g(){
    int i=0;
    f(i);
    assert(i);//i==1
}
Με διαφορά η πιο σύντομη και εύστοχη εξήγηση που έχω δει για τα references.
Λύσεις θεμάτων ΠΔΠ: https://pdp-archive.github.io/
Μπούσουλας διαβάσματος ΠΔΠ: http://snf-800715.vm.okeanos.grnet.gr/PDP/
Tutorials: https://kallinikos.github.io/
Επίσημο forum ΠΔΠ: https://www.pdpforum.eu.org/forum/
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από thetrojan01 »

Κηπουρίδης έγραψε: Με διαφορά η πιο σύντομη και εύστοχη εξήγηση που έχω δει για τα references.
Εικόνα
Πραγματικά ωραία χρήση της assert :D

@chris: είμαι πολύ περίεργος, πώς ακριβώς βρήκες εκείνο το interview με τον Stroustrup? υπάρχει πουθενά περιγραφεί για το τι είναι εκείνο το κείμενο; :P πραγματικά μου φτιαξε τη μέρα όταν το διάβασα
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
chris
Δημοσιεύσεις: 528
Εγγραφή: Κυρ Δεκ 28, 2008 9:27 am

Re: Ἀπὸ C σὲ C++

Δημοσίευση από chris »

thetrojan01 έγραψε:
Κηπουρίδης έγραψε: Με διαφορά η πιο σύντομη και εύστοχη εξήγηση που έχω δει για τα references.
Εικόνα
Πραγματικά ωραία χρήση της assert :D

@chris: είμαι πολύ περίεργος, πώς ακριβώς βρήκες εκείνο το interview με τον Stroustrup? υπάρχει πουθενά περιγραφεί για το τι είναι εκείνο το κείμενο; :P πραγματικά μου φτιαξε τη μέρα όταν το διάβασα
Σε ένα φόρουμ πρέπει να το είχα βρεί, όπως είπα όμως μην ψαρώνετε! Googlάρε, θα το βρείς. Δεν είναι πραγματική συνέντευξη. Δεν μάθαινα εγώ τόσο καιρό C++ για να μειώσω την παραγωγή κώδικα και την δημιουργικότητα μου ώστε να αυξηθεί ο μελλοντικός μισθός μου... αν και δεν ακούγεται τόσο άσχημο!
Μετα από 397 δημοσιεύσεις, έβαλα και υπογραφή.
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από thetrojan01 »

ναι άλλωστε και ο ίδιος ο καθηγητής στη σελίδα του αναφέρει ότι δεν έδωσε πότε τέτοια συνέντευξη. ήμουν απλά περίεργος πού το τσίμπησες.

συγγνώμη για τη στίξη μου αλλά γράφω σε νόκια κινητό. :)
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από Κηπουρίδης »

Ἀφοὺ οὐσιαστικὰ αὐτὸ ποὺ θέλουμε γιὰ τὸν διαγωνισμὸ εἶναι ἡ STL, ἕνα πολὺ καλὸ βιβλίο ( τουλάχιστον ὅπως τὸ θέλω ἐγώ, νὰ μπορεῖς νὰ τὸ δουλέψεις μόνος σου... ) εἶναι τὸ The C++ Standard Library - A Tutorial and Reference.
Λύσεις θεμάτων ΠΔΠ: https://pdp-archive.github.io/
Μπούσουλας διαβάσματος ΠΔΠ: http://snf-800715.vm.okeanos.grnet.gr/PDP/
Tutorials: https://kallinikos.github.io/
Επίσημο forum ΠΔΠ: https://www.pdpforum.eu.org/forum/
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από Κηπουρίδης »

Παιδιά, ὅσοι δὲν ξέρετε STL, νὰ μάθετε!
Προλαβαίνετε πολὺ εὔκολα πρὶν τὸν διαγωνισμὸ καὶ ἔχει ΚΟΡΥΦΑΙΑ ἐργαλεία!
Ὅσο σκέφτομαι ὅτι δὲν ἤξερα ὅτι ὐπάρχει min/max element, find, sort... θὰ σὰς σώσει ἀπὸ ΠΟΛΥ κόπο.
Λύσεις θεμάτων ΠΔΠ: https://pdp-archive.github.io/
Μπούσουλας διαβάσματος ΠΔΠ: http://snf-800715.vm.okeanos.grnet.gr/PDP/
Tutorials: https://kallinikos.github.io/
Επίσημο forum ΠΔΠ: https://www.pdpforum.eu.org/forum/
chris
Δημοσιεύσεις: 528
Εγγραφή: Κυρ Δεκ 28, 2008 9:27 am

Re: Ἀπὸ C σὲ C++

Δημοσίευση από chris »

Κηπουρίδης έγραψε:Παιδιά, ὅσοι δὲν ξέρετε STL, νὰ μάθετε!
Προλαβαίνετε πολὺ εὔκολα πρὶν τὸν διαγωνισμὸ καὶ ἔχει ΚΟΡΥΦΑΙΑ ἐργαλεία!
Ὅσο σκέφτομαι ὅτι δὲν ἤξερα ὅτι ὐπάρχει min/max element, find, sort... θὰ σὰς σώσει ἀπὸ ΠΟΛΥ κόπο.
Ok, όχι και η min/max :o
Μετα από 397 δημοσιεύσεις, έβαλα και υπογραφή.
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Re: Ἀπὸ C σὲ C++

Δημοσίευση από Κηπουρίδης »

Min element / Max element, ὄχι min/max :mrgreen: .
Οὔτε τὴν swap ἤξερα!
Λύσεις θεμάτων ΠΔΠ: https://pdp-archive.github.io/
Μπούσουλας διαβάσματος ΠΔΠ: http://snf-800715.vm.okeanos.grnet.gr/PDP/
Tutorials: https://kallinikos.github.io/
Επίσημο forum ΠΔΠ: https://www.pdpforum.eu.org/forum/
Απάντηση