- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
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'
Và
"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/
Giả sử tôi có một lớp trong đó tôi quá tải operator== : Class A { ... public: bool operator== (const A &rhs) const;
Tôi biết bạn không nên sử dụng std::find(some_map.begin(), some_map.end()) hoặc std::low_bound vì sẽ mất thời gian tuyến tính thay vì some_map.lowe
Tôi đang cố gắng xác định kiểu dữ liệu Vector3 trong Haskell và cho phép sử dụng toán tử (+) trên đó. Tôi đã thử như sau: data Vector3 = Vector3 Double Double Doub
Tôi đã nạp chồng toán tử thành "-" cho sơ đồ lớp của mình. Những gì nó làm không hoàn toàn trực quan (mã hóa kém - tôi biết) nhưng nếu tôi thực hiện graph3 = graph2-graph1 thì biểu đồ 3 được cho là chỉ nhận các đỉnh đó từ biểu đồ 2 và biểu đồ 1.
Câu hỏi này đã có câu trả lời ở đây: Đã đóng 11 năm trước. Có thể trùng lặp: Nạp chồng toán tử Tôi muốn nạp chồng để sắp xếp chuỗi theo thứ tự bảng chữ cái, nhưng tôi không chắc chắn cách thực hiện. làm sao nữa
Đoạn mã dưới đây gây ra lỗi biên dịch cho tôi. Có ai có thể cho tôi biết tại sao không? lớp mytype { công khai: giá trị int mytype(int a) { value = a;
Có chuyện gì thế này? class Vec2 attr_accessor :x, :y # ... def += (v) @x += vx @y += vy retu
Có thể nạp chồng toán tử [] hai lần không? Cho phép một cái gì đó như thế này: function[3][3] (giống như trong mảng 2D). Tôi muốn xem một số mã mẫu nếu có thể. Câu trả lời hay nhất Bạn có thể quá tải toán tử [] để trả về một đối tượng
Nhóm của tôi hiện đang làm việc với Lua để tạo một trò chơi Android. Một điều chúng tôi gặp phải là rõ ràng không có khả năng tạo ra các hàm tạo quá tải. Tôi đã quen với việc thiết lập một đối tượng với các giá trị mặc định và sau đó nạp chồng nó khi cần. người tiền nhiệm: táo() {
Tôi có một trang web tại một thời điểm nào đó hiển thị một thanh điều hướng, không gì khác hơn là một danh sách các thành phần (ul). Hầu hết các quy tắc tạo kiểu cho phần tử a được mô tả đều phổ biến. Phần duy nhất cần thay đổi là hình ảnh được hiển thị, có thể lấy từ thẻ id của từng phần tử li trong danh sách
Tôi quan tâm đến việc sử dụng/quá tải toán tử "bước phạm vi" (.. ..) nhưng suốt đời tôi không thể tìm ra cách sử dụng nó. Trong tài liệu có ghi // Cách sử dụng: start .. step .. finish nhưng trong F# shell
Java 11 (có thể không liên quan): public static String toString(Object obj) { return ReflectionToStringBuilder.to
Như hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời sẽ được hỗ trợ bởi các sự kiện, trích dẫn hoặc kiến thức chuyên môn, nhưng câu hỏi có thể gây ra tranh luận, tranh luận, bỏ phiếu hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập trang
Tôi không hiểu đoạn mã sau (đã nhận xét về số dòng) class Base { void m1(Object o) { } void m2(String o) { } } publi
Tôi có đoạn mã sau: #include sử dụng không gian tên std; struct Integer{ int x;
class myclass{ //định nghĩa ở đây }; myclass e; int myarray[10] /* Làm gì đó... */ e = myarray;
Tại sao toán tử chỉ số dưới (toán tử []) không thể bị quá tải như một hàm bạn bè? Câu trả lời hay nhất là như Bjarne Stroustrup nói trong cuốn sách D&E: Tuy nhiên, ngay cả trong
Tôi có đoạn mã sau: #include sử dụng không gian tên std; struct Integer{ int x;
Vì vậy, tôi gặp vấn đề với nỗ lực gần đây của mình nhằm làm quá tải không gian tên Eng { /** * Cấu trúc biểu thị pixel */ typedef
Làm cách nào để nạp chồng onResume() để hoạt động đúng cách? Tôi muốn quay lại hoạt động về MainActivity nơi tôi muốn có trạng thái giống như sau khi ứng dụng khởi động. Tôi muốn sử dụng tái tạo() nhưng nó lặp hoặc lớp
Tôi là một lập trình viên xuất sắc, rất giỏi!