Giả sử chúng ta có lớp cơ sở trừu tượng IBase
với các phương thức ảo thuần túy (một giao diện).Có thể truyền các lớp dẫn xuất bằng cách tham chiếu đến một hàm lấy lớp cơ sở làm tham số
Sau đó, chúng tôi lấy được CFoo
, CFoo2
từ lớp cơ sở.
Và chúng tôi có một chức năng biết cách làm việc với IBase.
Foo(IBase *input);
Kịch bản bình thường trong những trường hợp này là như thế này: quản lý
IBase *ptr = static_cast<IBase*>(new CFoo("abc"));
Foo(ptr);
delete ptr;
Nhưng con trỏ là tốt hơn để tránh được, vậy là có một cách để sử dụng tài liệu tham khảo trong kịch bản như vậy?
CFoo inst("abc");
Foo(inst);
nơi Foo
là:
Foo(IBase &input);
Có, những gì bạn có trong câu hỏi của mình là lý tưởng. – ildjarn
Có; đa hình hoạt động cho cả hai con trỏ và tham chiếu. Và ngừng đúc, làm ơn. Chúng ta không ở Hollywood. –