Jak opravit chybu "Žádný výchozí konstruktor" v C++
„Odchýlený“ v tomto kontextu znamená, že se očekávané chování kódu změnilo a kód již nesleduje očekávaný vzor. Jinými slovy, kód se odchýlil od zamýšlené cesty.
Problém, kterému čelíte, je způsoben skutečností, že `std::vector` nemá výchozí konstruktor, takže když se pokusíte vytvořit instanci `MyVector ` bez poskytnutí jakýchkoli argumentů nebude kompilátor schopen objekt sestavit.
Chcete-li tento problém vyřešit, můžete do své třídy `MyVector` přidat výchozí konstruktor, který inicializuje vektor s prázdným seznamem:
```
class MyVector {
std::vector
public:
MyVector() : myVector{} {} // výchozí konstruktor
// ... další metody ...
};
```
To vám umožní vytvářet instance z `MyVector` bez jakýchkoli argumentů a objekt bude zkonstruován správně.
Alternativně můžete také přidat konstruktor, který nebere žádné argumenty a inicializuje vektor s prázdným seznamem:
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector
MyVector() : myVector({}) {} // výchozí konstruktor
// ... další metody ...
};
```
To vám také umožní vytvářet instance `MyVector` bez jakýchkoli argumentů a objekt bude zkonstruován správně.