Hỏi về các cách tạo đối tượng cho lớp trong C++

Trong C++ theo như mình thấy có các cách tạo thể hiện của đối tượng như sau
Cách 1 : A a = new A()
Cách 2 : A a;
Cách 3 : A a = new B()
Cách 1 và cách 2 thì mình có dùng qua và hiểu cơ bản, tuy nhiên cách thứ 3 mình chưa hiểu lắm, sao thể hiện của đối tượng này lại có thể tạo ra từ đối tượng khác được, mong mọi người giải thích giúp với

B kế thừa từ A

new trả về A* mà :expressionless:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?