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

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

Δημοσ.

Φτιαξτε ένα νέο τύπος τριγώνου με χαρακτηριστηκα vasi και ipsos...και με αρχικές τιμές 2.Να υλοποιηθούν κατάλληλες συναρτήσεις μέλη για το εμβαδόν του τριγώνου. Επίσης κατάλληλες συναρτήσεις set και get των χαρακτηριστηκών vasi and ipsos.

>
     class X{
   private:
      int ipsos;
      int vasi;
  public:
    void setIpsos(int x){ ipsos=x; }
    void setVasi(int y){  vasi=y; }

    int getIpsos(void){ return ipsos; }
    int getVasi(void){ return vasi; }

    // Σε αυτό το σημείο βάζω μια συνάρτηση που να υπολογίζει το εμβαδόν του τριγώνου
    // περνει σαν ορισμα το ipsos και τη vasi και εκτυπωνει το αποτέλεσμα και κανει return
    // το εμβαδόν.






};




 

 

 

Σωστά σας φαίνονται τα παραπάνω?

Το πρόβλημα μου είναι ότι δεν καταλαβαίνω τι πρέπει να βάλω στην main() και πως να αρχικοποιήσω τα χαρακτηριστηκά του τριγώνου. Ευχαριστω πολύ

Δημοσ.

σωστα μου φαινονται αν και εχω καιρο να δω c++.

 

στην main δημιουργεις ενα object κλασσης Χ. Κανε ενα google για constructor σε c++ οπου θα μπει στην κλασση για αρχικοποιηση

Δημοσ.

Οκ....ευκολα αυτα....Μετα? Τι άλλο πρέπει να κάνει η main? Δεν δυσκολέυομαι στην υλοποίηση αλλά στην κατανόηση. Το πρόβλημα μου είναι πως να χειριστώ τις συναρτήσεις set και get

 

Αφου έχω συναρτήση set γιατι να χρησιμοποιήσω constractor;

 

Ευχαριστώ πολύ

Δημοσ.

Ποια η διαφορά μιας συνάρτησης set() και ενός constractor;

 

Ο δευτρερος καλειται αυτοματα κατα την δημιουργια του αντικειμενου. Το δε πρωτο ειναι ενα ατυπο perifx για μια pointer to function member.

Δημοσ.

Αν ήθελα να πέρνουν τα ipsos,vasi συγκεκριμένες τιμές απο 1 μέχρι 5 ας πούμε....πως θα το κάνω αυτό; Πρέπει να δημιουργίσω μια κλάση σφαλμα΄των;

Εχω μπερδευτεί πολύ σε αυτό

Δημοσ.

Η ασκηση όμως λέει να γίνει με exepsions δηλαδη από ότι έχω καταλάβει με try....catch.. :(

 

Με μπερδέυει ότι στο exeption πρεπει να 'μπλεχτεί' και μια συναρτηση μέλος της κλάσης...Αν ήταν μόνο η μαιν δεν υπήρχε πρόβλημα

Δημοσ.

στην main έχω βάλει αυτό

 

 

object.setIpsos(x);

 

 

κάπου εδώ πρέπει να βάλω τα try catch αλλα δεν μου το βγάζει σωστό

Δημοσ.

στην main έχω βάλει αυτό

 

 

object.setIpsos(x);

 

 

κάπου εδώ πρέπει να βάλω τα try catch αλλα δεν μου το βγάζει σωστό

Η ασκηση όμως λέει να γίνει με exepsions δηλαδη από ότι έχω καταλάβει με try....catch.. :(

 

Με μπερδέυει ότι στο exeption πρεπει να 'μπλεχτεί' και μια συναρτηση μέλος της κλάσης...Αν ήταν μόνο η μαιν δεν υπήρχε πρόβλημα

Καταρχήν θα φροντίσεις οι κλήσεις που μπορεί να επιστρέψουν Exception (πχ. setIpsos) να καλούνται εντός ενός try{ }catch(){ } μπλοκ. Ύστερα εντός της setIpsos για παράδειγμα, θα πρέπει όταν ανιχνεύεις μια τιμή εκτός ορίων που επιθυμείς να επιστρέφεις ένα Exception κάποιου είδους, πχ. ως char*, σαν throw (char*)"setIpsos::Invalid range!"; αυτό αρκεί. Τώρα στο αρχικό try{ }catch(){ } μπλοκ σου φροντίζεις να ορίσεις το catch() ως catch(char*) ώστε να πιάνει όλα τα Exceptions τύπου char* (δηλαδή throw (char*)"..") και είσαι έτοιμος.

 

Υ.Γ.

Καλό είναι το throw να επιστρέφει ένα ανάλογο class αντί κατευθείαν κάποιο τύπο αλλά καθώς δεν έχεις εμπειρία, τα παραπάνω είναι αρκετά για ξεκινήσεις.

Δημοσ.

θα έχω δηλαδη στη main

 

>
cin>> i;
try{

oblject.setIpsos(i)

}
catch(){
cerr << "oops!"
}

 

Το main θα μπορούσε να το έχεις έτσι:

 

>
int main(void)
{
X myX;

try
{
	myX.setIpsos(6);
}
catch(char *ex)
{
	cout <<ex<<endl;
}

 

Όπου το setIpsos θα μπορούσε να ήταν κάτι σαν:

 

>
void setIpsos(int x)
{
if(x < 1 || x > 5)
	throw (char*)"setIpsos::Invalid range!";
ipsos=x;
}

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...