Tôi muốn đúc này:cast const Lớp sử dụng dynamic_cast
class Base
{
public:
virtual ~Base(){};
};
class Der : public Base {};
int main()
{
const Base* base = new Der;
Der* der = dynamic_cast<Der*>(base); // Error
return 0;
}
Tôi nên làm gì? Tôi đã cố gắng để đặt: const Der* der = dynamic_cast<Der*>(base);
để mantain const nhưng điều này không hoạt động.
Tôi đã thử nó không hoạt động. – okami
Bạn cần const hai lần - một lần trong loại biến được gán cho, và một lần trong 'dynamic_cast'. Trong ví dụ về những gì bạn đã thử, bạn chỉ có cái đầu tiên. – Eclipse
ok. Nhưng chỉ là một quesiton dưới câu hỏi của tôi. Tại sao tôi nên giữ ảo ~ Base() {}; để dynamic_cast không cho tôi một lỗi? – okami