Πόσους κατασκευαστές μπορεί να έχει μια κλάση στο c;

Πόσους κατασκευαστές μπορεί να έχει μια κλάση στο c;
Πόσους κατασκευαστές μπορεί να έχει μια κλάση στο c;
Anonim

Υπάρχει μπορεί να οριστούν περισσότεροι από ένας κατασκευαστές σε μια κλάση. Αυτό ονομάζεται υπερφόρτωση του κατασκευαστή. Συνήθως υπάρχει ένας κατασκευαστής που δεν έχει παραμέτρους (τίποτα μέσα στις παρενθέσεις που ακολουθούν το όνομα του κατασκευαστή) όπως ο κατασκευαστής World παραπάνω. Αυτό ονομάζεται επίσης κατασκευαστής χωρίς όρισμα.

Πόσοι κατασκευαστές μπορούν να υπάρχουν σε μια κλάση;

Αυστηρά μιλώντας, η μορφή αρχείου κλάσης JVM περιορίζει τον αριθμό των μεθόδων (συμπεριλαμβανομένων όλων των κατασκευαστών) για μια κλάση σε λιγότερο από 65536. Και σύμφωνα με τον Tom Hawtin, το πραγματικό όριο είναι 65527. Κάθε υπογραφή μεθόδου καταλαμβάνει μια θέση στο σταθερό pool.

Μπορεί μια τάξη να έχει πολλούς κατασκευαστές;

Η τεχνική της ύπαρξης δύο (ή περισσότερων) κατασκευαστών σε μια κλάση είναι γνωστή ως υπερφόρτωση κατασκευαστή. Μια κλάση μπορεί να έχει πολλαπλούς κατασκευαστές που διαφέρουν ως προς τον αριθμό και/ή τον τύπο των παραμέτρων τους. Ωστόσο, δεν είναι δυνατό να υπάρχουν δύο κατασκευαστές με τις ίδιες ακριβώς παραμέτρους.

Μπορούμε να έχουμε περισσότερους από έναν κατασκευαστές σε μια τάξη στην C;

Στην C++, μπορούμε να έχουμε περισσότερους από έναν κατασκευαστές σε μια κλάση με ίδιο όνομα, αρκεί ο καθένας να έχει διαφορετική λίστα ορισμάτων. Αυτή η έννοια είναι γνωστή ως Υπερφόρτωση Κατασκευαστή και μοιάζει αρκετά με την Υπερφόρτωση Συναρτήσεων.

Μπορείτε να καλέσετε έναν κατασκευαστή;

Καλώντας έναν κατασκευαστή από μια μέθοδο

Όχι, δεν μπορείτε να καλέσετε έναν κατασκευαστήαπό μια μέθοδο. Το μόνο μέρος από το οποίο μπορείτε να καλέσετε κατασκευαστές χρησιμοποιώντας "αυτό" ή "super" είναι η πρώτη γραμμή ενός άλλου κατασκευαστή. Εάν προσπαθήσετε να καλέσετε ρητά κατασκευαστές αλλού, θα δημιουργηθεί ένα σφάλμα χρόνου μεταγλώττισης.

Συνιστάται: