Tôi đang làm việc trên một chương trình C++ cho lớp học, và trình biên dịch của tôi đang phàn nàn về một cuộc gọi hàm "không rõ ràng". Tôi nghi ngờ rằng điều này là bởi vì có một số chức năng được xác định với các thông số khác nhau.Làm thế nào để sửa một cuộc gọi hàm "không rõ ràng"?
Làm cách nào tôi có thể cho trình biên dịch biết tôi muốn trình biên dịch nào? Ngoài việc khắc phục sự cố cụ thể, có quy tắc chung nào, chẳng hạn như typecasting, có thể giải quyết các loại vấn đề này không?
Edit:
Trong trường hợp của tôi, tôi đã cố gắng gọi abs()
bên trong một tuyên bố cout
, đi qua trong hai double
s.
cout << "Amount is:" << abs(amountOrdered-amountPaid);
Edit2:
tôi bao gồm ba tiêu đề sau đây:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
Edit3:
Tôi đã hoàn thành chương trình mà không cần mã này, nhưng vì lợi ích của việc theo dõi thông qua nhiệm vụ này trên, tôi đã sao chép vấn đề. Lỗi chính tả là:
Gọi tới 'abs' không rõ ràng.
Trình biên dịch cung cấp ba phiên bản abs
, mỗi loại lấy một kiểu dữ liệu khác nhau làm tham số.
Bạn vui lòng hiển thị ví dụ từ mã của bạn? –
Nó thực sự phụ thuộc vào tình hình. Bạn cần đăng mã và nếu lỗi trình biên dịch bao gồm các hàm nào là các ứng cử viên (các GCC gần đây làm) cũng giúp ích. –
Cũng tốt sẽ là tiêu đề được bao gồm. – mkb