Kuinka korjata "Ei oletuskonstruktori" -virhe C++issa
"Poikkeama" tarkoittaa tässä yhteydessä, että koodin odotettu käyttäytyminen on muuttunut, eikä se enää seuraa odotettua kaavaa. Toisin sanoen koodi on poikennut aiotulta polulta.
Kohtaamasi ongelma johtuu siitä, että `std::vector'lla ei ole oletuskonstruktoria, joten kun yrität luoda esiintymän `MyVectorista ` ilman argumentteja, kääntäjä ei pysty rakentamaan objektia.
Korjaaksesi tämän ongelman, voit lisätä oletuskonstruktorin `MyVector-luokkaasi, joka alustaa vektorin tyhjällä listalla:
```
class MyVector {
std::vector
public:
MyVector() : myVector{} {} // oletuskonstruktori
// ... muut menetelmät ...
};
```
Tämän avulla voit luoda esiintymiä `MyVectorista` ilman argumentteja, ja objekti rakennetaan oikein.
Vaihtoehtoisesti voit lisätä konstruktorin, joka ei ota argumentteja ja alustaa vektorin tyhjällä listalla:
```
class MyVector {
std::vector< int> myVector;
public:
OmaVektori(const std::vektori
OmaVektori() : myVector({}) {} // oletuskonstruktori
// ... muita menetelmiä ...
};
```
Tämän avulla voit myös luoda `MyVectorin` esiintymiä ilman argumentteja, ja objekti rakennetaan oikein.