Προγραμματισμός σε C++

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
Μπορει καποιος να μου πει με δικα του λογια την χρησιμοτητα του virtual γιατι δεν μπορω να καταλαβω που βοηθα....;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Αν λές για τις virtual functions
{
Code:
#include<iostream>
#include<string.h>
using namespace std;

class book
{
    protected:
            char name[30];
    public:
    virtual void show(){cout<<"paramithia."<<endl;}
};
class book1:public book
{
    public:
    book1(char n[]){strcpy(name,n);}
    void show(){cout<<name<<endl;}
};
class book2:public book
{
    public:
    book2(char n[]){strcpy(name,n);}
    void show(){cout<<name<<endl;}
};
int main()
{
    char name1[]="Kokkinoskoyfitsa";
    char name2[]="Ta tria gourounakia";
    book1 b1(name1);
    book2 b2(name2);
    book *ptr[2];
    ptr[0]=&b1;
    ptr[1]=&b2;
    for(int i=0;i<2;i++)
       ptr[i]->show();
    return 0;
}
Όταν οι συναρτήσεις δεν είναι virtual ένας δείκτης της βασικής κλασης μπορεί να καλέσει μόνο συναρτήσεις-μέλη της βασικής κλάσεις.
Αν μια συνάρτηση δηλωθεί ως virtual στην βασική κλάση τότε ένας δείκτης της βασικής κλασης μπορεί να καλέσει τις συναρτήσεις-μέλη των παράγωγων κλάσεων.

Στο παράδειγμα η show ειναι εικονική.Ο πίνακας δεικτών ptr ειναι της βασικής κλάσης οπου ptr[0] δείχνει στο αντικείμενο b1 και ptr[1] στο b2.Αν η show δεν είχε δηλώθει ως εικονική ο ptr δεν θα μπορούσε να καλέσει την show των b1 και b2 ,θα καλούσε την δικία του show και θα εκτύπωνε

paramithia
paramithia

ενώ τώρα μπορεί και εκτυπώνει:
Kokkinoskoyfitsa
Ta tria gourounakia

}
αλλιώς
ξαναρώτα;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
Αν και ειχα βρει στο ιντερνετ κατι σχετικο, σσ ευχαριστω διοτι επιβεβαιωσα το σκεπτικο. Διαβαζοντας τον κωδικα μου δημιουργηθηκαν αποριες...
book *ptr[2]; Δεν θα επρεπε να καθε στοιχειο οτον πινακα να δειχνει σε ενα τυπο δεδομενων book και οχι book1 ή book2 ;
2) Θα πρεπει συναρτησεις σαν την show() να εχουν ιδιο τυπο και ονομα ή πρεπει και η λιστα παραμετρων να ειναι ιδια;
3) Όταν οι συναρτήσεις (δεν) είναι virtual ένας δείκτης της ΠΑΡΑΓΟΥΣΑΣ κλασης θα καλεσει αναγκαστικα την show της book1 (ή 2)
ή θα υπαρξει προβλημα . Αν ισχυει ο παραπανω ισχυρισμος τοτε για την show() της βασης πρεπει να γραψω *ptr_to_book1.book::show();

Ευχαριστω και παλι
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
book *ptr[2]; Δεν θα επρεπε να καθε στοιχειο οτον πινακα να δειχνει σε ενα τυπο δεδομενων book και οχι book1 ή book2 ;
2) Θα πρεπει συναρτησεις σαν την show() να εχουν ιδιο τυπο και ονομα ή πρεπει και η λιστα παραμετρων να ειναι ιδια;
3) Όταν οι συναρτήσεις (δεν) είναι virtual ένας δείκτης της ΠΑΡΑΓΟΥΣΑΣ κλασης θα καλεσει αναγκαστικα την show της book1 (ή 2)
ή θα υπαρξει προβλημα . Αν ισχυει ο παραπανω ισχυρισμος τοτε για την show() της βασης πρεπει να γραψω *ptr_to_book1.book::show();

1.Αυτό είναι το νόημα των εικονικών συναρτήσεων:ο δείκτης της βασικής κλάσης book να μπορεί να καλεί τις συναρτήσεις show των άλλων κλάσεων ανάλογα με το τι τύπου αντικείμενο του έχει εκχωρηθεί. Δηλαδή στο ptr[0] έχει εκχωρηθει τύπος δεδομένων book1 άρα το ptr[0]->show() θα καλέσει την show της κλάσης book1. Αν κάθε στοιχειο του πίνακα δείχνει σε ενα τύπο δεδομένων book δεν θα έχει νόημα.Εννοειτε πως μπορεί να συμβαίνει και αυτό:

Code:
#include<iostream>
#include<string.h>
using namespace std;

class book
{
    protected:
            char name[30];
    public:
    book(char n[]){strcpy(name,n);}
    book(){};
    virtual void show(){cout<<name<<" paramithia"<<endl;}
};
class book1:public book
{
    public:
    book1(char n[]){strcpy(name,n);}
    void show(){cout<<name<<endl;}
};
class book2:public book
{
    public:
    book2(char n[]){strcpy(name,n);}
    void show(){cout<<name<<endl;}
};
int main()
{
    char name1[]="Kokkinoskoyfitsa";
    char name2[]="Ta tria gourounakia";
    char name3[]="paramithenia";
    book1 b1(name1);
    book2 b2(name2);
    book *ptr[2],b(name3);
    ptr[0]=&b1;
    ptr[1]=&b;
    for(int i=0;i<2;i++)
        ptr[i]->show();
    return 0;
}

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

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Ρωτάς ή δηλώνεις; :P

Με float ή double, ανάλογα τι "ακρίβεια" θες. :)

αχαχα ξέχασα να βάλω ερωτηματικο :whistle:
ευχαριστώωω :D
ααα Να ρωτήσω και κατι τελευταίο...που ούτε στην python to εχω λύσει :P

πως να γράφω και να μου εμφανίζει τα ελληνικά? :mad:
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Βάλε στην αρχή: system("chcp 1253");
μετά πήγαινε ιδιότητες στο cmd (πάνω αριστερά)και επέλεξε γραμματοσειρά lucida console.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
1.Αυτό είναι το νόημα των εικονικών συναρτήσεων:ο δείκτης της βασικής κλάσης book να μπορεί να καλεί τις συναρτήσεις show των άλλων κλάσεων ανάλογα με το τι τύπου αντικείμενο του έχει εκχωρηθεί.

Εχω καταλαβει οτι εφοσον οι book,book1 εχουν σχεση βασης-παραγωγης μου δινεται η δυνατοτητα να φτιαξω την ιδια συναρτηση (εκτος το body που μπορω να διαφοροποιησω) και οταν ενας δεικτης προσπελασει την book ψαχνοντας την show(), τοτε θα κοιτάξει-υπερυσχισει η show της book1. Με αλλα λογια ενας δικτης δειχνει στην book και αν οντως υπαρχει show() στη book1 τοτε θα την καλεσει. Ετσι πως ειναι ο κωδικας ουτως η αλλως θα επρεπε νομιζω ΠΑΝΤΑ να υπερισχυει η show() της book1 , κατι το οποιο δεν συμβαινει.

Σεναριο 2: μηπως με την κληρονομικοτητα επι της ουσιας μεσα στο body της book1 υπαρχουν 2 show() και για να ξερει ο υπολ. ποια θα καλεσει βαζω το virtual;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
στην αρχή του κώδικα?

γιατι όπου και να το βάλω στο κώδικα δεν το αναγνωρίζει...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
O δείκτης ptr είναι τύπου book δεν δείχνει σε αντικείμενα τύπου book γιαυτό και καλεί την show της κλάσης που δείχνει δηλαδή την book1.Αν η book1 δεν είχε δικία της show θα καλούσε την show της book.Η ουσιαστική διαφορά μεταξύ εικονικής και μη εικονικής συνάρτησης έιναι οτι στις εικονικές ο δείκτης της βασικής κλάσεις μπορεί να καλέσει τις show των παράγωγων ένω αν ήταν μη εικονικές θα μπορούσε να καλέσει μόνο την show της book.Άρα το σενάριο 2 πρέπει να ισχύει.
Και εγώ τώρα μαθαίνω δεν ξέρω 100%.αν ξέρει καλύτερα κάποιος ας με διορθώσει.

στην αρχή του κώδικα?

γιατι όπου και να το βάλω στο κώδικα δεν το αναγνωρίζει...

στην αρχή της
main()
{
system("chcp 1253");
}
κάνε include και το <stdlib.h>.Εκεί έχει δηλωθεί η system.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Τελευταία επεξεργασία:

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Code:
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;


main() {
system("chcp 1253");

double  a;
double b;
double c;
double D;

cout<<"ΔΩΣΕ ΣΥΝΤΕΛΕΣΤΗ Χ^2 :";
cin>> a;

cout<<"ΔΩΣΕ ΣΥΝΤΕΛΕΣΤΗ Χ:";
cin>> b;

cout<<"ΔΩΣΕ ΣΤΑΘΕΡΟ ΟΡΟ :";
cin>> c;
D = (b*b)-(4*(a*c));
cout << "D= " <<D ;

if(D>0) {
   cout<<"Η ΕΞΙΣΩΣΗ ΕΧΕΙ ΔΥΟ ΛΥΣΕΙΣ\n\n x1= "<< (-b+sqrt(D))/(2*a)<<"  \n x2= "<< (-b-sqrt(D))/(2*a);
}

else if (D<0) {
   cout<<"\n\nΗ ΕΞΙΣΩΣΗ ΟΤΑΝ Η ΔΙΑΚΡΙΝΟΥΣΑ ΕΙΝΑΙ 0,ΔΕΝ ΕΧΕΙ ΛΥΣΕΙΣ.\nEINAI AΔΥΝΑΤΗ!\n\n";
}

else if (D==0) {
   cout<<"\n\nΗ ΕΞΙΣΩΣΗ ΕΧΕΙ ΜΙΑ ΔΙΠΛΗ ΛΥΣΗ:\n\nχ=  "<<(-b)/(2*a);
}
}
εδώ ειναι ο κώδικας μου... λογικά κάποιο λάθος γίνεται οταν η Δ>0 ή Δ=0 γιατί δεν μ βγάζει τις σωστές λυσεις...
μπορείτε να μου εξηγήσετε ποιο ειναι το λάθος μου?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Επεξεργάστηκε από συντονιστή:

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 30,791 μηνύματα.
μπορείτε να μου εξηγήσετε ποιο ειναι το λάθος μου?
Κατ' αρχάς το ότι δεν βάζεις στοίχιση (indents). Σου επεξεργάστηκα το μήνυμά σου, ρίξε μία ματιά πώς είναι καλό να παραθέτεις κώδικα. Να χρησιμοποιείς [code]...[/code] tags και στοίχιση, ώστε να διαβάζεται εύκολα. Ευτυχώς εδώ είναι απλός, αλλά σε πιο περίπλοκα παραδείγματα μην περιμένεις να κάτσει κάποιος να διαβάσει κώδικα χωρίς στοίχιση. :)

Επίσης, το πρόγραμμά σου μου φαίνεται σωστό. Μπορείς να δώσεις παραδείγματα που είναι λάθος; Γιατί εγώ έτρεξα κάποια και έβγαλαν σωστά αποτελέσματα.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Κατ' αρχάς το ότι δεν βάζεις στοίχιση (indents). Σου επεξεργάστηκα το μήνυμά σου, ρίξε μία ματιά πώς είναι καλό να παραθέτεις κώδικα. Να χρησιμοποιείς [code]...[/code] tags και στοίχιση, ώστε να διαβάζεται εύκολα. Ευτυχώς εδώ είναι απλός, αλλά σε πιο περίπλοκα παραδείγματα μην περιμένεις να κάτσει κάποιος να διαβάσει κώδικα χωρίς στοίχιση. :)

Επίσης, το πρόγραμμά σου μου φαίνεται σωστό. Μπορείς να δώσεις παραδείγματα που είναι λάθος; Γιατί εγώ έτρεξα κάποια και έβγαλαν σωστά αποτελέσματα.
συγγνώμη για τα tags...
και ευχαριστώ για την διόρθωση...

και στον κώδικα,δίκιο έχεις...τα υπολόγιζα με το μυαλό για την επαλήθευση...
και για αυτό,τα έκανα εγώ λάθος...:P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
λοιπόν έχω 2 απορίες ακόμα...

1ον...έκλεισα και ξανανοιξα το codeblocks και τώρα όπου έγραφα ελληνικά πριν..τα βγάζει καπως ετσι "дысе сумтекестг "
οταν τρέχω το προγραμμα τρέχει όμως κανονικά... :/

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

Όταν ομως το τρέχω απο Codeblocks δεν κλείνει αμέσως..αλλα οταν πατήσω κάποιο κουμπί...:/

καμιά βοήθεια? :/
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Zed

Διάσημο μέλος

Ο Zed αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται IT και μας γράφει απο Ηλιούπολη (Αττική). Έχει γράψει 2,488 μηνύματα.
system "pause"; έβαλες?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
system "pause"; έβαλες?

οχι,το έβαλα τωρα και το δευτερο πρόβλημα επιλύθηκε :D (δεν ήξερα καν ότι χρειάζεται... :P )
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
Καλησπερα.

εχω μια συναρτηση της οποιας το πρωτοτυπο ειναι το εξης: int& f() {int x; return x;}

Δεν μπορω να καταλαβω γιατι γυρνα το x. η συναρτηση και ετσι int f() {int x; return x;} να ηταν , παλι θα θεωρουταν σωστη. Γινεται καποιος να μου πει πως το εχει καταλαβει γιατι δεν το πολυποιανω;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Το int& f() {int x; return x;} επιστρέφεi αναφορά στο x το οποίο είναι λάθος γιατί το x είναι τοπική μεταβλητή της f() και μόλις τελειώσει θα καταστραφεί.Αν το x ήταν καθολική μεταβλητή θα δουλευε σωστά και το f() θα ήταν μια αναφορά της x στην συνάρτηση που την κάλεσε .To int f() {int x; return x;} απλά επιστρέφει την τιμή της x.Τι δεν πολυποιάνεις δεν πολυκατάλαβα.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
το int& ειναι επι της ουσιας ενας const δεικτης ο οποιος δειχνει παντα σε εναν συγκεκριμενο ακεραιο. π.χ αν εχω int& r=x; τοτε το r ειναι μια αναφορα του x.

Eστω οτι οντωςς το x ειναι καθολικη . Πως γινεται μια συναρτηση με το ιδιο body να εχει διαφορετικες επιστρεφομενες τιμες ...; Επισης με την φραση "επιστρεφει μια αναφορα στο x τι εννοουμε" ; Επιστρεφει διευθυνση, μια μεταβλητη χωρις ονομα η οποια αποτελει μια αναφορα στο x ;

int& r=f(); για να μην σε μπερδεψω, γινεται να γραψεις ενα ενα τα βηματα που κανει ο υπολογιστης ;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
. Πως γινεται μια συναρτηση με το ιδιο body να εχει διαφορετικες επιστρεφομενες τιμες ...;
Δεν έχει διαφορετικες επιστρεφομενες τιμες,η μία επιστρεφει την τιμή της x και η άλλη επιστρέφει αναφορά στην x.αν έχει τo & στην δήλωση επιστρέφει αναφορά.

Επισης με την φραση "επιστρεφει μια αναφορα στο x τι εννοουμε" ; Επιστρεφει διευθυνση, μια μεταβλητη χωρις ονομα η οποια αποτελει μια αναφορα στο x ;
Επιστρέφει αναφορά στην θέση μνήμης του x.Το δεύτερο που λές πρέπει να ισχύει.

Code:
#include<iostream>
using namespace std;

int x=3;
int &f(){return x;}

int main()
{
    int k=6;

    cout<<f()<<endl;
    f()=k;
    cout<<f()<<endl;
 return 0;
}
x=3
καλειτε η συνάρτηση επιστρέφει αναφορα στην x(δηλαδή αναφορά στην θέση μνήμης της x) εμφανίζετε το 3
καλειτε η συνάρτηση επιστρέφει αναφορα στην x και καταχωρήτε στο x το 6.
Βασικά το "f()" είναι σαν το όνομα της "αναφορικής μεταβλητής" στην x.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 4 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top