Cara Membetulkan Ralat "Tiada Pembina Lalai" dalam C++
"Menyimpang" dalam konteks ini bermakna gelagat kod yang dijangkakan telah berubah dan ia tidak lagi mengikut corak yang dijangkakan. Dalam erti kata lain, kod telah menyimpang daripada laluan yang dimaksudkan.
Isu yang anda hadapi adalah disebabkan oleh fakta bahawa `std::vector` tidak mempunyai pembina lalai, jadi apabila anda cuba mencipta contoh `MyVector ` tanpa memberikan sebarang hujah, pengkompil tidak akan dapat membina objek.
Untuk menyelesaikan isu ini, anda boleh menambah pembina lalai pada kelas `MyVector` anda yang memulakan vektor dengan senarai kosong:
```
class MyVector {
std::vector
public:
MyVector() : myVector{} {} // default constructor
// ... kaedah lain ...
};
```
Ini akan membolehkan anda mencipta kejadian daripada `MyVector` tanpa sebarang hujah, dan objek akan dibina dengan betul.
Sebagai alternatif, anda juga boleh menambah pembina yang tidak mengambil hujah dan memulakan vektor dengan senarai kosong:
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector
MyVector() : myVector({}) {} // default constructor
// ... kaedah lain ...
};
```
Ini juga akan membolehkan anda mencipta kejadian `MyVector` tanpa sebarang hujah, dan objek akan dibina dengan betul.