Cách khắc phục lỗi "Không có hàm tạo mặc định" trong C++
"Lệch" trong ngữ cảnh này có nghĩa là hành vi dự kiến của mã đã thay đổi và mã không còn tuân theo mẫu dự kiến nữa. Nói cách khác, mã đã đi chệch khỏi đường dẫn dự định của nó.
Sự cố bạn gặp phải là do `std::vector` không có hàm tạo mặc định, vì vậy khi bạn cố gắng tạo một phiên bản của `MyVector ` mà không cung cấp bất kỳ đối số nào, trình biên dịch sẽ không thể xây dựng đối tượng.
Để khắc phục sự cố này, bạn có thể thêm một hàm tạo mặc định vào lớp `MyVector` để khởi tạo vectơ bằng một danh sách trống:
```
class MyVector {
std::vector
public:
MyVector() : myVector{} {} // default constructor
// ... các phương thức khác ...
};
```
Điều này sẽ cho phép bạn tạo các thể hiện của `MyVector` mà không có bất kỳ đối số nào và đối tượng sẽ được xây dựng chính xác.
Ngoài ra, bạn cũng có thể thêm một hàm tạo không có đối số và khởi tạo vectơ bằng một danh sách trống:
```
class MyVector {
std::vector< int> myVector;
public:
MyVector(const std::vector
MyVector() : myVector({}) {} // hàm tạo mặc định
// ... các phương thức khác ...
};
```
Điều này cũng sẽ cho phép bạn tạo các phiên bản của `MyVector` mà không có bất kỳ đối số nào và đối tượng sẽ được xây dựng chính xác.