我有一个抽象类,其他 3 个类继承自该抽象类,它们是具体类。我有一个抽象类类型的指针。我想编写一个函数,它接收我提到的 3 个类之一的对象,然后为其分配内存(使用基类指针),然后将传递的对象的值分配给它。如何在我的函数中为该特殊类型新
内存?
(我不知道我收到的对象是什么类型,我只知道它继承 self 的抽象类)
谢谢。
最佳答案
我解决这个问题的方法是在抽象基类中添加一个duplicate()
方法,然后在每个派生类中实现它。每个实现都确切地知道它有多大,所以它可以使用 new
来分配内存。它还确切地知道它有什么内容,因此它可以将它的值分配给新实例。不错,简单,优雅。和面向对象。
关于c++ - 如何在多态性中为指定类型分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876842/