mobile theme mode icon
theme mode light icon theme mode dark icon
Random Question Τυχαίος
speech play
speech pause
speech stop

Πώς να διορθώσετε το σφάλμα "No Default Constructor" στο C++

Το "Deviated" σε αυτό το πλαίσιο σημαίνει ότι η αναμενόμενη συμπεριφορά του κώδικα έχει αλλάξει και δεν ακολουθεί πλέον το αναμενόμενο μοτίβο. Με άλλα λόγια, ο κώδικας έχει αποκλίνει από την προβλεπόμενη διαδρομή.

Το πρόβλημα που αντιμετωπίζετε προκαλείται από το γεγονός ότι το `std::vector` δεν έχει προεπιλεγμένο κατασκευαστή, οπότε όταν προσπαθείτε να δημιουργήσετε μια παρουσία του `MyVector «χωρίς να παρέχει ορίσματα, ο μεταγλωττιστής δεν θα μπορεί να κατασκευάσει το αντικείμενο.

Για να διορθώσετε αυτό το πρόβλημα, μπορείτε να προσθέσετε έναν προεπιλεγμένο κατασκευαστή στην κλάση «MyVector» που αρχικοποιεί το διάνυσμα με μια κενή λίστα:
```
class MyVector {
std::vector myVector;
public:
MyVector() : myVector{} {} // default constructor
// ... άλλες μέθοδοι ...
};
```
Αυτό θα σας επιτρέψει να δημιουργήσετε στιγμιότυπα του `MyVector` χωρίς ορίσματα, και το αντικείμενο θα κατασκευαστεί σωστά.

Εναλλακτικά, μπορείτε επίσης να προσθέσετε έναν κατασκευαστή που δεν παίρνει ορίσματα και αρχικοποιεί το διάνυσμα με μια κενή λίστα:
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector&) {} // default constructor
MyVector() : myVector({}) {} // default constructor
// ... άλλες μέθοδοι ...
};
```
Αυτό θα σας επιτρέψει επίσης να δημιουργήσετε παρουσίες του "MyVector" χωρίς ορίσματα και το αντικείμενο θα κατασκευαστεί σωστά.

Το Knowway.org χρησιμοποιεί cookies για να σας παρέχει καλύτερη εξυπηρέτηση. Χρησιμοποιώντας το Knowway.org, συμφωνείτε με τη χρήση των cookies από εμάς. Για λεπτομερείς πληροφορίες, μπορείτε να διαβάσετε το κείμενο της Πολιτικής Cookie. close-policy