Không có hàm khớp cho lệnh gọi nghĩa là khi chúng ta đang gọi một số hàm nhất định, nhưng id của hàm đó không khớp với đối số của hàm được xác định. Do đó, chúng tôi nhận được lỗi 'không có chức năng khớp cho cuộc gọi' tới C++. Bất cứ khi nào trình biên dịch cho biết không có phương thức nào khớp, điều đó thường cho biết trình biên dịch đã xác định một phương thức có cùng tên giống như chúng ta đã cung cấp các tham số cho hàm.
Vì vậy, khi chúng ta tiếp tục truyền phương thức đã chỉ định có loại không chính xác hoặc tập hợp tham số không phù hợp cho hàm. Định nghĩa hàm chỉ định tên của phương thức cho trình biên dịch cũng như cách gọi phương thức đó. Toàn bộ nội dung của hàm đang được khai báo rõ ràng. Trong bài viết này, chúng ta sẽ nói về cách xuất hiện lỗi 'Không có chức năng khớp cho cuộc gọi' trong C++.
Sử dụng đối tượng của lớp
Trong trường hợp này, tham số hàm không khớp trong khi gọi, vì vậy chúng tôi sẽ cố gắng chuyển con trỏ ở những nơi cần tham chiếu và sử dụng các loại tham chiếu lớp khác nhau trong lệnh gọi hàm. Bất cứ khi nào chúng ta gọi hàm nhưng định nghĩa hàm của đối số không khớp thì lỗi 'Không có hàm khớp để gọi tới C++' sẽ xuất hiện.
Bây giờ chúng ta phải sửa lỗi; vì mục đích này, chúng tôi chỉ cung cấp tham số phù hợp trong quá trình định nghĩa hàm. Bạn có thể xem mã cùng với mô tả chi tiết bên dưới.

Khi bắt đầu mã, chúng ta sẽ bao gồm thư viện
Ở dòng tiếp theo, chúng ta gọi một hàm khác setValue(). Phương thức này giữ biến 'value' làm đối số của nó. Chúng tôi tăng giá trị được truyền làm đối số của nó. Sau đó, chúng ta gọi hàm main() và được cung cấp 'argc' có kiểu dữ liệu số nguyên và con trỏ 'argv' có kiểu dữ liệu ký tự làm đối số của nó. 'argc' là không. của các tham số được cung cấp trong mã từ hệ điều hành. ‘argv’ là tập hợp các tham số.
Bây giờ chúng ta tạo một đối tượng ‘obj’ của lớp ‘A.’ Chúng ta gọi hàm setValue() của phương thức. 'obj' được truyền làm đối số của nó. Nhưng chúng tôi đã không kết nối đối tượng với lớp. Đó là lý do tại sao khi chúng ta gọi hàm setValue(), nó trả về lỗi vì chúng ta không có lớp để gọi hàm setValue(). Trong đoạn mã trên, chúng ta đang truyền một đối tượng lớp trong đối số gọi hàm setValue(), nhưng nếu chúng ta kiểm tra định nghĩa hàm setValue(), chúng ta sẽ giả sử giá trị đối số được truyền là một số nguyên. Để chấm dứt mã, chúng tôi đã sử dụng lệnh 'return 0'. Ở đây, đầu ra của đoạn mã nêu trên có thể được xác minh.

Chúng tôi nhận được lỗi 'không có chức năng khớp để gọi tới A' sau khi thực thi đoạn mã nêu trên.
Làm thế nào để giải quyết lỗi này?
Để khắc phục lỗi này trong quá trình gọi phương thức, chúng ta phải cung cấp đầy đủ các tham số tương ứng cho hàm. Cách khác để giải quyết lỗi này là làm cho các hàm nạp chồng khác nhau có các tham số khác nhau. Ở đây chúng ta chỉ sửa đổi đối số của hàm main(). Do đó, lỗi 'không có chức năng khớp cho cuộc gọi' tới C++ sẽ được loại bỏ. Bạn có thể xem mã cùng với mô tả chi tiết bên dưới.

Sau khi sử dụng không gian tên tiêu chuẩn, chúng tôi giới thiệu tệp tiêu đề
Trong bước tiếp theo, chúng ta gọi phương thức main(). Trong hàm main(), chúng ta sẽ cung cấp 'argc' của kiểu dữ liệu số nguyên và 'argv' của kiểu dữ liệu ký tự làm đối số của nó. ‘argc’ hiển thị số lượng tham số do hệ điều hành cung cấp trong chương trình. ‘argv’ là một tập hợp tham số. Bây giờ chúng ta sẽ tạo một đối tượng của lớp 'A' có tên là 'obj.' Chúng ta đã khởi tạo biến 'value' với kiểu dữ liệu số nguyên. Chúng tôi đã sử dụng phương thức setValue() của đối tượng và đặt ‘giá trị’ làm tham số của hàm này.
Cuối cùng, chúng tôi thêm 'return 0' để đóng chương trình. Hãy nhớ rằng chúng ta phải nhập cùng kiểu dữ liệu của các hàm và đối số của chúng trong hàm main(). Sau đó chúng ta đã truyền hàm đó cho đối tượng của nó và trả về nó. Ở đây, đầu ra của đoạn mã nêu trên có thể được xác minh.

Kết luận
Trong bài viết này, chúng tôi đã khám phá các nguyên nhân gây ra lỗi 'không có chức năng khớp cho cuộc gọi' và cách giải quyết vấn đề này. Bất cứ khi nào chúng tôi nhận được lỗi này, chúng tôi phải kiểm tra các tham số của các phương thức được yêu cầu cũng như kiểu dữ liệu của chúng. Chúng ta mắc lỗi khi cung cấp các đối số cho các đối số của hàm. Chúng tôi không khớp các tham số với hàm. Chúng tôi có thể được yêu cầu cung cấp tham số phù hợp cho phương thức đã chỉ định. Hoặc chúng ta phải thêm một hàm mới có cùng kiểu dữ liệu. Sau khi kiểm tra và thêm thông số phù hợp vào chức năng trong chương trình sẽ khắc phục được lỗi ‘không khớp chức năng cho cuộc gọi’.
Giới thiệu về tác giả
Kalsoom Bibi
Xin chào, tôi là nhà văn tự do và thường viết cho Linux và các nội dung liên quan đến công nghệ khác