Cum să remediați eroarea „Fără constructor implicit” în C++
„Deviat” în acest context înseamnă că comportamentul așteptat al codului s-a schimbat și nu mai urmează modelul așteptat. Cu alte cuvinte, codul a deviat de la calea intenționată.
Problema cu care te confrunți este cauzată de faptul că `std::vector` nu are un constructor implicit, așa că atunci când încerci să creezi o instanță pentru `MyVector ` fără a furniza niciun argument, compilatorul nu va putea construi obiectul.
Pentru a remedia această problemă, puteți adăuga un constructor implicit la clasa dvs. `MyVector` care inițializează vectorul cu o listă goală:
```
class MyVector {
std::vector
public:
MyVector() : myVector{} {} // constructor implicit
// ... alte metode ...
};
```
Acest lucru vă va permite să creați instanțe de `MyVector` fără niciun argument, iar obiectul va fi construit corect.
În mod alternativ, puteți adăuga, de asemenea, un constructor care nu acceptă argumente și inițializează vectorul cu o listă goală:
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector
MyVector() : myVector({}) {} // constructor implicit
// ... alte metode...
};
```
Acest lucru vă va permite, de asemenea, să creați instanțe ale lui `MyVector` fără niciun argument, iar obiectul va fi construit corect.