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

c++ - Tại sao loại "this" trong phương thức phiên bản không được ghi đè của lớp con lại là loại cha?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 15:22:10 26 4
mua khóa gpt4 Nike

C++ của tôi hơi cũ và tôi bối rối với ví dụ sau. Ví dụ ngắn nên tôi nghĩ nó sẽ rõ ràng hơn lời giải thích của tôi, đây là:

mẫu 
bảng cấu trúc
{
T getCell()
{
Tc;
c.setTable(cái này);
}
};

cấu trúc MyTable;

cấu trúc tế bào
{
void setTable(MyTable *tbl)
{

}
};

struct MyTable : Bảng công khai
{

};

int main(int argc, char *argv[])
{

Bảng của tôi t;
t.getCell();
}

Nhìn thấy http://ideone.com/1MhVNcĐể thử nghiệm, trình biên dịch cho biết:

prog.cpp: Khi khởi tạo 'T Table::getCell() [với T = Cell]':
prog.cpp:30:15: được yêu cầu từ đây
prog.cpp:7:9: error: chuyển đổi không hợp lệ từ 'Table* const' sang 'MyTable*' [-fpermissive]
prog.cpp:15:10: error: khởi tạo đối số 1 của 'void Cell::setTable(MyTable*)' [-fpermissive]
prog.cpp:8:5: cảnh báo: không có câu lệnh trả về trong hàm trả về không trống [-Wreturn-type]

Tôi sẽ ngây thơ nghĩ rằng vì đó là một cuộc gọi getCell của Bảng của tôi ví dụ, sau đó getCell "cái này" trong ngữ cảnh gọi điện sẽ được nhập Bảng của tôi.

Rõ ràng không phải như vậy, tại sao lại như vậy?

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

没有。 loại tĩnhthực vậyBảng<ô> .Vì bạn không có phương thức ảo nên bạn thậm chí không thể truy cập kiểu độngcủa Bảng của tôi .

Hãy xem xét điều này: lớp cơ sở Bảng<ô>sẽ được getCell Tạo cùng một mã cho tất cả các phiên bản của một kiểu được xây dựng trực tiếp hoặc dưới dạng kiểu dẫn xuất. Vậy làm thế nào nó có thể phụ thuộc vào loại Bảng của tôi ?

Giới thiệu về c++ - Tại sao loại "this" trong phương thức phiên bản không được ghi đè của lớp con lại là loại cha? , 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/16185028/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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