cuốn sách gpt4 ai đã làm

Độ phân giải quá tải/sự mơ hồ trong tra cứu tên (cái nào)

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 02:13:22 25 4
mua khóa gpt4 Nike

7,3,3 USD/14 (C++03)

cấu trúc A { int x() };
cấu trúc B : A { };
cấu trúc C : A {
sử dụng A::x;
int x(int);
};
cấu trúc D : B, C {
sử dụng C::x;
int x(gấp đôi);
};
int f(D* d) {
return d->x(); // không rõ ràng: B::x hoặc C::x
}

Các nhận xét trong mã ở "f" cho biết có thể có sự mơ hồ giữa "B::x" hoặc "C::x".

Tuy nhiên, khi biên dịch bằng g++(ideone) hoặc Comeau, lỗi hơi khác một chút. Những lỗi này không biểu thị sự mơ hồ trong B::x hoặc C::x mà thực tế là A là cơ sở mơ hồ cho D

prog.cpp: Trong hàm 'int f(D*)': prog.cpp:16: error: 'A' là cơ sở không rõ ràng của 'D'

"ComeauTest.c", dòng 21: lỗi: lớp cơ sở "A" không rõ ràng return d->x(); // mơ hồ: B::x hoặc C::x;

Tuân theo quy tắc tra cứu tên trong $10,2, tôi cảm thấy các nhận xét trong đoạn mã không chính xác. Lỗi thực sự liên quan đến sự mơ hồ trong lớp cơ sở "A" trước hết, chứ không phải bất kỳ điều gì khác (ví dụ: sự mơ hồ trong độ phân giải quá tải). Có ý tưởng gì không?

câu trả lời hay nhất

Điều này là do sự thay đổi trong tra cứu tên trong C++ 03: việc kiểm tra các đối tượng con rõ ràng là một phần của việc tra cứu tên thành viên lớp trong C++ 03. Một tìm kiếm trong C++03 sẽ tìm thấy D::X và C::x và A::x, trong đó A::x khớp nhưng được liên kết với hai đối tượng con khác nhau thuộc loại A.

Trong C++ 0x, việc kiểm tra các đối tượng con rõ ràng hiện là một phần của mệnh đề con tương ứng, xem DR #39 : x Lớp mà nó trực tiếp thuộc về là lớp cơ sở không rõ ràng - vì vậy mục 5 sẽ gây ra lỗi biên dịch chứ không phải mục 10.

Xin lưu ý rằng các ý kiến ​​thảo luận MỘT đối tượng phụ. MỘT Đối tượng phụ của đường dẫn B,MỘT một đối tượng phụ khác của C .Đây là những gì bình luận nói "B::x hoặc C::x" lý do. Sự hiện diện của nhiều đối tượng phụ thuộc cùng một loại lớp có thể được xác định bằng cách cố gắng chuyển sang loại lớp của nó, bỏ qua các vấn đề về khả năng truy cập: nếu chuyển đổi không rõ ràng, đối tượng phụ sẽ xuất hiện nhiều lần.

Về c++ - độ phân giải quá tải/sự mơ hồ trong tra cứu tên (cái nào), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/4130201/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress