Tôi đã đọc một số chủ đề khác trên trang web này, và chúng đề cập đến cách dynamic_cast và static_cast đều an toàn cho upcasting.Casting - Tại sao tôi nên làm điều đó cho Upcasting
Tại sao những yêu cầu này lại được yêu cầu cho upcasting?
Ví dụ, nếu lớp B có nguồn gốc từ A, sau đó
A * ptr = new B();
vẫn hoạt động, và cư xử như một đối tượng của loại A. (Tôi cũng từ một nền tảng Java, nơi chuyển đổi cho upcasting là không cần thiết.
tôi cũng đọc trên trang web này mà dynamic_cast là không cần thiết cho downcasting [trong câu hỏi "When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used?"] . Một lần nữa, tôi sẽ nghĩ rằng đúc là chỉ thực sự cần thiết khi bạn đang downcasting từ upcasting xảy ra tự động.
Tôi đang ở đâu sai?
Lưu ý: trong câu hỏi trước, một trong những câu trả lời cho biết "Bạn không cần phải sử dụng nó để cast xuống ...". Tuy nhiên, từ ngữ cảnh của câu đầy đủ, nghĩa là bạn không bị giới hạn chỉ sử dụng nó để truyền xuống. [Tôi đã chỉnh sửa câu trả lời đó để xóa sự mơ hồ.] –