Giả sử tôi có một lớp học Cơ sở và một số lớp Có nguồn gốc. Có cách nào để truyền một đối tượng đến một trong các lớp dẫn xuất mà không cần phải viết một cái gì đó như thế này:C++ đúc theo lập trình: có thể thực hiện được không?
string typename = typeid(*object).name();
if(typename == "Derived1") {
Derived1 *d1 = static_cast< Derived1*>(object);
}
else if(typename == "Derived2") {
Derived2 *d2 = static_cast < Derived2*>(object);
}
...
else {
...
}
Đây là chi tiết một phút nhưng tôi muốn đề cập đến. Bạn có nghĩa là d1-> và d2-> chứ không phải là d1. và d2. ,đúng? Vì các kiểu con trỏ sử dụng toán tử arrow để tiếp cận các hàm thành viên. :) –