Προς το περιεχόμενο

vector


mairy87

Προτεινόμενες αναρτήσεις

ε βασει των τελευταιων μπορεις να εχεις το εξης, να κανεις κλασεις-παιδια της XreosiKinitou (ή Packard ή όπως αλλιως) οι οποιες απλα δινουν διαφορετικη τιμη στα timi_per_sms και timi_per_tilefono_minute.

πχ

>

class XreosiKinitou {
[indent]float xreos_sms; 
float xreos_tilefona;  

float timi_per_sms; 
float timi_per_tilefono_minute;

int numOfSMS;
float numOfMinutesTalked;

+ οτι αλλο στοιχειο θες....
}
[/indent]
class ContractKinito : public XreosiKinitou
{
[indent]ContractKinito( ) 
{[indent]timi_per_sms = 0.10;
timi_per_tilefono_minute = όσο ειναι....
[/indent]
}
[/indent]}

// και αντιστοιχα 
class KartoKinito : public XreosiKinitou
{
[indent]KartoKinito ( ) 
{[indent]timi_per_sms = καποια τιμη....
timi_per_tilefono_minute = όσο ειναι....
 [/indent]
}
[/indent]}

 

αρα αν εχεις καπου μια συναρτηση που ας πουμε, παιρνει σαν ορισμα μια XreosiKinitou όπως πχ

>

float CalculateXreos(  XreosiKinitou* xr) 
{
      float xreos;
      xreos += xr->numSms * xr->timi_per_sms;

      etc....
}

 

τοτε αν στο μαιν φτιαξεις τα 2 αντικειμενα που λες

>
int main( .... )
{
       ContractKinito   myContract;
       KartoKinito   myKartokinito;

       // τα γεμιζεις καπου εδω....

       // και εδω καλεις την CalculateXreos 
       // βλεπεις πως ενω η μια κλαση ειναι τυπου ContractKinito και 
       // η αλλη KartoKinito, περνουν σαν ορισματα στην ιδια 
       // συναρτηση CalculateXreos γιατι κληρονομουν απο την ιδια κλαση....
       float xreos_symvolaiou = CalculateXreos( &myContract );
       float xreos_kartas = CalculateXreos( &myKartokinito);        
}

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 65
  • Δημ.
  • Τελ. απάντηση

γραφω αργα και δεν ειχα δει το τελευταιο σου μηνυμα

 

float xreos_sms;

float xreos_tilefona;

 

float timi_per_sms;

float timi_per_tilefono_minute;

 

το ένα αφορά το συμβόλαιο κσι το άλλο την καρτοκινητή??

 

και τα αντικείμενα που θέλει να δημιουργήσουμε στο κυρίως πρόγραμμα?

 

Τί είναι το 0.5?

 

Όχι, τη δομή του προγράμματος στην εξήγησα...απειδή μας έδινε κάποια κομματάκια από τις κλάσεις...

θέλει...

Μαμά κλάση ονόματι Packard

Παιδιά κλάσεις: μία για καρτοκινητή και μία για σύνδεση

Το είδες το τελευταίο μνμ που είχα γράψει??

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

 

0.5 = μισο λεπτο = 30 δευτερα

 

εγω οπως καταλαβες,προσπαθω να σου δοσω τη γενικη ιδεα, δε εχει νοημα να σου τη λυσω

ξεκινα, προσπαθησε να γραψεις κατι δικο σου και βαλε το να το συζητησουμε, αλλιως δε γινεται.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

float xreos_sms;

float xreos_tilefona;

 

float timi_per_sms;

float timi_per_tilefono_minute;

 

Τί διαφορά έχουνε τα πάνω 2 float από τα 2 κάτω??

Στα κάτω βάζουμε τις τιμές χρέωσης...Τα 2 πάνω, πως τα χρησιμοποιούμε??

 

Τον κώδικα πως τον βάζεις σε παράθυρο με μπάρα (εδώ στο φόρουμ)??

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

τον κωδικα τον βαζω αναμεσα σε [ c o d e ] και [/ c o d e ] χωρις τα κενα

 

τα

float xreos_sms;

float xreos_tilefona;

ειναι και καλα ποσο χρεος εχει μαζευτει μεχρι στιγμης απο τα sms και τηλεφωνα αντιστοιχα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

γραφω αργα και δεν ειχα δει το τελευταιο σου μηνυμα

 

εγω οπως καταλαβες,προσπαθω να σου δοσω τη γενικη ιδεα, δε εχει νοημα να σου τη λυσω

ξεκινα, προσπαθησε να γραψεις κατι δικο σου και βαλε το να το συζητησουμε, αλλιως δε γινεται.

 

Προγραμματιστής και γράφεις αργά??Με εκπλήσεις...(καλά λένε, κανείς δεν είναι τέλειος...);)

Πέρα από την πλάκα και εγώ αυτό θέλω, προκειμένου να καταλάβω τι παίζει...

Γιατι αν βάλει κάτι παρεμφερή....τη κάτσαμε...

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

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κάτσε γιατί σε έχασα...

λες:

>
class XreosiKinitou {

   float xreos_sms; float xreos_tilefona; float timi_per_sms; float timi_per_tilefono_minute; int numOfSMS; float numOfMinutesTalked; + οτι αλλο στοιχειο θες.... } 

class ContractKinito : public XreosiKinitou
{

   ContractKinito( ) {

       timi_per_sms = 0.10; timi_per_tilefono_minute = όσο ειναι.... 

   } 

}

// και αντιστοιχα 
class KartoKinito : public XreosiKinitou
{

   KartoKinito ( ) {

       timi_per_sms = καποια τιμη.... timi_per_tilefono_minute = όσο ειναι.... 

   } 
}

 

τώρα αυτά είναι αρχεία .cpp ή .h ??

 

Αν θες, πριν φύγεις από το φόρουμ, ρίξε μια ειδοποίηση να το ξέρω...οκ? Thanks!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ποια η διαφορα cpp και h?

 

οταν κανεις include ενα h σε ενα cpp ξερεις τι γινεται? Ακριβως οτι θα γινοταν και αν εκανες copy-paste τα περιεχομενα του h στο cpp στο σημειο που το κανεις include. Αυτο. Μονο.

Αρα?

Τι ειναι?

h?

ή cpp?

επι του προκειμενου, εχει σημασια?

 

(θα ειχε σημασια αν το προγραμμα σου αποτελουταν απο πολλα cpp αρχεια που ενδεχομενως να χρειαζονταν τα ιδια πραγματα οποτε θα το οργανωνες καπως καλυτερα με h/cpp files)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έχει σημασία, γιατί αν ζητήσει να του γράψω το .cpp θα πρέπει να ξέρω τι πρέπει να του γράψω...αντίστοιχα για το .h

 

Αυτό που μου έγραψες μια πάω να το πω .cpp μια .h

Τα χεις βάλει και τα δύο μαζί??

 

Πρέπει να ξέρω τη θα του γ΄ραψω σε κάθε περίπτωση....

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

Αυτό που μου λες τι από τα 2 είναι??

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>class ContractKinito : public XreosiKinitou
{

   ContractKinito( ) {

       timi_per_sms = 0.10; 
       timi_per_tilefono_minute = όσο ειναι.... 

   } 

}

 

λες...

ContractKinito( )

αυτό στην ουσία είναι ο δημιουργός

άρα μήπως να το έβαζα αυτόνομα στο .h και όλο το υπόλοιπο στο .cpp

???

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>float CalculateXreos(  XreosiKinitou* xr) 
{
      float xreos;
      xreos += xr->numSms * xr->timi_per_sms;

      etc....
}

 

Αυτό τώρα είναι μια απλή συνάρτηση??

Αν θέλω να την κάνω πολυμορφική συνάρτηση??

Και αν θέλω να φτιάξω και το πρότυπό της??

Θα πρέπει να αναφρθώ γενικά στη μαμά-κλάση και όχι γενικά όπως εσύ εδω??

 

Τα μνμ που γράφω τα πειράζω και κάνω αλλαγές...ελπίζω να τις βλέπεις...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>
ContractKinito   myContract;
KartoKinito   myKartokinito;

 

Να υποθέσω πως το: ContractKinito είναι το όνομα της κλάσης μου και το :myContract είναι το αντικείμενο μου που βασίζεται στην αντίστοιχη κλάση?? Παίρνει στοιχεία από την κλάση μου ή μέσω δείκτη θα δείχνει εκεί??

 

Δηλαδή στην ερώτηση για δημιουργία 2 αντικειμένων...μόνο αυτές οι δύο γραμμές χρειάζονται??

 

Πως τα γεμίζω??

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ok ok

να κανουμε ενα ξεκαθαρισμα

 

Κάτσε γιατί σε έχασα...

λες:

>
class XreosiKinitou {

   float xreos_sms; float xreos_tilefona; float timi_per_sms; float timi_per_tilefono_minute; int numOfSMS; float numOfMinutesTalked; + οτι αλλο στοιχειο θες.... } 

class ContractKinito : public XreosiKinitou
{

   ContractKinito( ) {

       timi_per_sms = 0.10; timi_per_tilefono_minute = όσο ειναι.... 

   } 

}

// και αντιστοιχα 
class KartoKinito : public XreosiKinitou
{

   KartoKinito ( ) {

       timi_per_sms = καποια τιμη.... timi_per_tilefono_minute = όσο ειναι.... 

   } 
}

τώρα αυτά είναι αρχεία .cpp ή .h ??

 

Αν θες, πριν φύγεις από το φόρουμ, ρίξε μια ειδοποίηση να το ξέρω...οκ? Thanks!

 

αυτα, καλlιστα μπορουν να μπουν στο h

 

>class ContractKinito : public XreosiKinitou
{

   ContractKinito( ) {

       timi_per_sms = 0.10; 
       timi_per_tilefono_minute = όσο ειναι.... 

   } 

}

λες...

ContractKinito( )

αυτό στην ουσία είναι ο δημιουργός

άρα μήπως να το έβαζα αυτόνομα στο .h και όλο το υπόλοιπο στο .cpp

???

ναι, ο δημιουργος ειναι

μπορεις να το βαλεις ως εχει στο h και ετσι ο δημιουργος θα ειναι inline (google για το τι ειναι inline συναρτηση) είτε να το κανεις ως

>

// sto .h file
class ContractKinito : public XreosiKinitou
{

    ContractKinito( );

}

//-------------------------------
// sto cpp file
ContractKinito::ContractKinito( )
{
 
         timi_per_sms = 0.10; 
         timi_per_tilefono_minute = όσο ειναι.... 
 
} 

 

το ιδιο ισχυει και για τις υπολοιπες κλασσεις

 

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

Αυτό που μου λες τι από τα 2 είναι??

 

λοιπον, λοιπον, λοιπον

εχουμε 2 περιπτωσεις που πρεπει να ξεκαθαρισεις σε ποια απο τις δυο ειμαστε

η μια ειναι πως ο τροπος υπολογισμου του λογαριασμου γινεται με τον ιδιο τροπο ειτε προκειται και καρτοκινητη ειτε για συμβολαιο οποτε το μονο που διαφοροποιειται ειναι οι τιμες

η δευτερη ειναι πως αναλογα τι ειναι (καρτα/συμβολαιο) εχεις και διαφορετικη φορμουλα υπολογισμου (πχ στο συμβολαιο συνυπολογιζεις και ενα παγιο ενω στη καρτα οχι)

 

Στη πρωτη περιπτωση, την CalculateXreos την κανεις όπως σου εδειξα, στο h file θα βαλεις το πρωτοτυπο της, δηλ

>float CalculateXreos(  XreosiKinitou* xr); 

και στο cpp το σωμα της

>
float CalculateXreos(  XreosiKinitou* xr){float xreos;        xreos += xr->numSms * xr->timi_per_sms;       

       etc....
}

 

Στη δευτερη περιπτωση, όπου θα χρειαστεις διαφορετικο κωδικα αναλογα τον τυπο της χρεωσης, θα εχεις 2 versions της CalculateXreos του στυλ

>  
float CalculateXreos( [b]ContractKinito[/b]* xr);
float CalculateXreos( [b]KartoKinito[/b]* xr);

 

και αντιστοιχα 2 σωματα στο cpp

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

>
ContractKinito   myContract;
KartoKinito   myKartokinito;

Να υποθέσω πως το: ContractKinito είναι το όνομα της κλάσης μου και το :myContract είναι το αντικείμενο μου που βασίζεται στην αντίστοιχη κλάση?? Παίρνει στοιχεία από την κλάση μου ή μέσω δείκτη θα δείχνει εκεί??

 

Δηλαδή στην ερώτηση για δημιουργία 2 αντικειμένων...μόνο αυτές οι δύο γραμμές χρειάζονται??

 

Πως τα γεμίζω??

 

με αυτη σου την ερωτηση μου λες πως εχεις πολυ μικρη επαφη με τη c++ πραγμα που σημαινει πως το εχεις ψαξει ελαχιστα.

Να σε βοηθησω σε κατι που δε καταλαβες οκ (ας πουμε το κομματι template classes ειναι καπως...) αλλα εσυ εχεις πολυ βασικες ελλειψεις.

Καταλαβες τι εννοουσα για τα 2/3 αυτων που δε γραφουν? Πως θα γραψεις ΟΤΙ ασκηση κα να βαλει αν με ρωτας "Να υποθέσω πως το: ContractKinito είναι το όνομα της κλάσης μου και το :myContract είναι το αντικείμενο μου που βασίζεται στην αντίστοιχη κλάση?"

Δεν ειναι χαζη ερωτηση, ειναι φυσιολογικη, αλλα ειναι πολυ primitive σαν θεμα....

 

PS η απαντηση στο ερωτημα ειναι το ContractKinito είναι το όνομα της κλάσης και το

myContract ειναι το ονομα της μεταβλητης τυπου ContractKinito. Το πιανεις? Οταν οριζεις μια κλαση, στην ουσια οριζεις ενα νεο τυπο δεδομενων, όπως ειναι το int, float, char, string.... και αφου την ορισεις μπορεις να δημιουργησεις μεταβλητες που ειναι όπως λεμε "instances" αυτης της κλασσης

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ok ok

να κανουμε ενα ξεκαθαρισμα

 

>Παράθεση:
Αρχικό μήνυμα απο mairy87 Εμφάνιση μηνυμάτων
Κάτσε γιατί σε έχασα...
λες:
Κώδικας:

class XreosiKinitou {

   float xreos_sms; float xreos_tilefona; float timi_per_sms; float timi_per_tilefono_minute; int numOfSMS; float numOfMinutesTalked; + οτι αλλο στοιχειο θες.... } 

class ContractKinito : public XreosiKinitou
{

   ContractKinito( ) {

       timi_per_sms = 0.10; timi_per_tilefono_minute = όσο ειναι.... 

   } 

}

// και αντιστοιχα 
class KartoKinito : public XreosiKinitou
{

   KartoKinito ( ) {

       timi_per_sms = καποια τιμη.... timi_per_tilefono_minute = όσο ειναι.... 

   } 
}

 

τώρα αυτά είναι αρχεία .cpp ή .h ??

 

Αν θες, πριν φύγεις από το φόρουμ, ρίξε μια ειδοποίηση να το ξέρω...οκ? Thanks!

αυτα, καλlιστα μπορουν να μπουν στο h

 

 

Ναι, αλλά εκχωρείς τιμές...

στο .h εκχωρούμε τιμές?? Εγώ νόμιζα πως αυτό το κάνουμε στο .cpp

Λάθος?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.


  • Δημιουργία νέου...