Πώς να διορθώσετε το σφάλμα "No Default Constructor" στο C++
Το "Deviated" σε αυτό το πλαίσιο σημαίνει ότι η αναμενόμενη συμπεριφορά του κώδικα έχει αλλάξει και δεν ακολουθεί πλέον το αναμενόμενο μοτίβο. Με άλλα λόγια, ο κώδικας έχει αποκλίνει από την προβλεπόμενη διαδρομή.
Το πρόβλημα που αντιμετωπίζετε προκαλείται από το γεγονός ότι το `std::vector` δεν έχει προεπιλεγμένο κατασκευαστή, οπότε όταν προσπαθείτε να δημιουργήσετε μια παρουσία του `MyVector «χωρίς να παρέχει ορίσματα, ο μεταγλωττιστής δεν θα μπορεί να κατασκευάσει το αντικείμενο.
Για να διορθώσετε αυτό το πρόβλημα, μπορείτε να προσθέσετε έναν προεπιλεγμένο κατασκευαστή στην κλάση «MyVector» που αρχικοποιεί το διάνυσμα με μια κενή λίστα:
```
class MyVector {
std::vector
public:
MyVector() : myVector{} {} // default constructor
// ... άλλες μέθοδοι ...
};
```
Αυτό θα σας επιτρέψει να δημιουργήσετε στιγμιότυπα του `MyVector` χωρίς ορίσματα, και το αντικείμενο θα κατασκευαστεί σωστά.
Εναλλακτικά, μπορείτε επίσης να προσθέσετε έναν κατασκευαστή που δεν παίρνει ορίσματα και αρχικοποιεί το διάνυσμα με μια κενή λίστα:
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector
MyVector() : myVector({}) {} // default constructor
// ... άλλες μέθοδοι ...
};
```
Αυτό θα σας επιτρέψει επίσης να δημιουργήσετε παρουσίες του "MyVector" χωρίς ορίσματα και το αντικείμενο θα κατασκευαστεί σωστά.