c++ Κλάσεις και Δημιουργοί

...ασύγχρονα μαθήματα γλώσσας C

c++ Κλάσεις και Δημιουργοί

Δημοσίευσηαπό linux_learn85 » 03 Ιουν 2012, 23:51

Καλησπέρα σε όλους
Είχα δημιουργήσει ένα άλλο θέμα στο φόρουμ με το πώς φτιάχνω κλάσεις σε c++ .
Εχω αρκετό καιρό να γράψω c++ και τα περισσότερα ταχω ξεχάσει
Εχω ένα πρόβλημα υπολογισμού της εντάσεως του ρεύματος και θέλω να το κάνω σε κώδικα ,με κλάσεις αντικείμενα constructors και ένα από τα ερωτήματα αναφέρει να "να ορισθούν μέθοδοι υπερβασης των τελεστων > (μεγαλυτερο), < (μικροτερο), = (ισον)"..
Εχω δημιουργήσει ένα απλό πρόγραμμα με μια κλάση kyklwma και ένα αντικείμενο antistash και θα ήθελα να μου πείτε αν σαν πρόγραμμα είναι σωστό
Καθώς και πώς θα μπορούσα να βάλω set/get μεθόδους σε αυτό
και να μου εξηγήσει κάποιος αν μπορεί τί σημαίνει να ορίσω μεθόδους υπέρβασης τελεστών
Ελπίζω να μην έγινα κουραστικός
Ευχαριστώ
Καλό βράδυ

Κώδικας: Επιλογή όλων
#include <iostream>

using namespace std;

class Kyklwma
{
private:
int v;
int i1;
int i2;
int r1;
int r2;
int R;
public:
void print()
{

cout<<"dwse timh gia tin antistash r1 :"<<endl;
cin>> r1;
cout<<"dwse tin timh ths antistashs r2 :"<<endl;
cin>>r2;
cout<<"dwse timh gia tin tash v :"<<endl;
cin>>v;
cout<<"twra upologise tin timh tis entashs i1:"<<endl;
cout<<"stin 1 periptwsh opou oi antistaseis tha einai parallhles i timh ths entashs tha einai"<<" "<<endl;
i1=(v*r1+v*r2)/(r1*r2);
cout<< i1 <<endl;
cout<<"stin 2 periptwssh opou oi antistaseis tha eina se seira i timh ths entashs tha einai"<< " "<<endl;
i2=v*(r1+r2);
cout<<i2<<endl;


}

};

int main()
{
Kyklwma antistash;
antistash.print();
};
Επίπεδο Γνώσεων Linux: Αρχάριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Στοιχεία: Ubuntu 11.04 natty 32bit (el_GR.UTF-8),
Intel Pentium Dual CPU T3200 2.00GHz ‖ RAM 2955 MiB ‖ Wistron 3612 - Hewlett-Packard Compaq Presario CQ60 Notebook PC
Intel Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07)
linux_learn85
babeTUX
babeTUX
 
Δημοσιεύσεις: 34
Εγγραφή: 25 Φεβ 2012, 00:57
Εκτύπωση

Re: c++ Κλάσεις και Δημιουργοί

Δημοσίευσηαπό simosx » 04 Ιουν 2012, 00:27

linux_learn85 έγραψε:και να μου εξηγήσει κάποιος αν μπορεί τί σημαίνει να ορίσω μεθόδους υπέρβασης τελεστών


Αυτό είναι το operator overloading στα αγγλικά. Είναι σημαντικό να το διαβάσεις πρώτα από το βιβλίο, διότι είναι βασική γνώση στον προγραμματισμό με C++ (το λένε και «σοσάρα»).
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: c++ Κλάσεις και Δημιουργοί

Δημοσίευσηαπό poscore » 04 Ιουν 2012, 23:16

Ίσως το παρόν να μεταφερθεί μια ενότητα πίσω? :/
Άβαταρ μέλους
poscore
punkTUX
punkTUX
 
Δημοσιεύσεις: 153
Εγγραφή: 28 Απρ 2012, 17:21
Εκτύπωση

Re: c++ Κλάσεις και Δημιουργοί

Δημοσίευσηαπό g1wrg0s » 05 Ιουν 2012, 01:04

linux_learn85 έγραψε:Καλησπέρα σε όλους
Είχα δημιουργήσει ένα άλλο θέμα στο φόρουμ με το πώς φτιάχνω κλάσεις σε c++ .
Εχω αρκετό καιρό να γράψω c++ και τα περισσότερα ταχω ξεχάσει
Εχω ένα πρόβλημα υπολογισμού της εντάσεως του ρεύματος και θέλω να το κάνω σε κώδικα ,με κλάσεις αντικείμενα constructors και ένα από τα ερωτήματα αναφέρει να "να ορισθούν μέθοδοι υπερβασης των τελεστων > (μεγαλυτερο), < (μικροτερο), = (ισον)"..
Εχω δημιουργήσει ένα απλό πρόγραμμα με μια κλάση kyklwma και ένα αντικείμενο antistash και θα ήθελα να μου πείτε αν σαν πρόγραμμα είναι σωστό
Καθώς και πώς θα μπορούσα να βάλω set/get μεθόδους σε αυτό
και να μου εξηγήσει κάποιος αν μπορεί τί σημαίνει να ορίσω μεθόδους υπέρβασης τελεστών
Ελπίζω να μην έγινα κουραστικός
Ευχαριστώ
Καλό βράδυ

Κώδικας: Επιλογή όλων
#include <iostream>

using namespace std;

class Kyklwma
{
private:
int v;
int i1;
int i2;
int r1;
int r2;
int R;
public:
void print()
{

cout<<"dwse timh gia tin antistash r1 :"<<endl;
cin>> r1;
cout<<"dwse tin timh ths antistashs r2 :"<<endl;
cin>>r2;
cout<<"dwse timh gia tin tash v :"<<endl;
cin>>v;
cout<<"twra upologise tin timh tis entashs i1:"<<endl;
cout<<"stin 1 periptwsh opou oi antistaseis tha einai parallhles i timh ths entashs tha einai"<<" "<<endl;
i1=(v*r1+v*r2)/(r1*r2);
cout<< i1 <<endl;
cout<<"stin 2 periptwssh opou oi antistaseis tha eina se seira i timh ths entashs tha einai"<< " "<<endl;
i2=v*(r1+r2);
cout<<i2<<endl;


}

};

int main()
{
Kyklwma antistash;
antistash.print();
};


Αν θες να ελεγχεις τα προγραμματα σου τοτε απλα μεταγλωτιζε τα και τρεχε τα.
Επι της ουσιας τις λειτουργιες set/get τις κανεις μεσα στο function print() οποτε απο εκει πρεπει να κοψεις κωδικα, ωστε η print() να κανει μονο αυτο που λεει το ονομα της , print .

Τωρα για operator overloading θαμποορουσε να σου πει ο καθενας την αποψη του για το πως υλοποιουνται αλλα οπως ειπαν και παραπανω καλυτερα να τα διαβασεις(αν διαβαζεις απο καποιο βιβλιο) , προκειμενου να καταλαβεις την sosara...
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Πρώτα βήματα
2 Ubuntu 12.10 quantal 3.10.20-031020-generic 32bit (el_GR.UTF-8, Unity ubuntu), Windows 8
3 Intel Core i5-3230M CPU @ 2.60GHz ‖ RAM 7923 MiB ‖ Acer VA50_HC_CR - Acer Aspire V3-571G
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915} ⋮ nVidia Device [10de:0fe1] {}
5 eth0: Broadcom NetLink BCM57785 Gigabit Ethernet PCIe [14e4:16b5] (rev 10) ⋮ wlan0: Atheros Inc. AR9462 Wireless Network Adapter [168c:0034] (rev 01)
g1wrg0s
punkTUX
punkTUX
 
Δημοσιεύσεις: 196
Εγγραφή: 26 Μάιος 2012, 10:29
Εκτύπωση


Επιστροφή στο Μαθήματα C