2 unclejimbo unclejimbo 于 2014.02.19 16:32 提问

c++继承问题,如何在调用基类函数时根据子类而动态分配存储空间?

我现在有几个类,Layer,Feature,Layer类有addFeature函数,存到private成员一个vector中,还有类Point,Line,Area均继承自Feature,但当一个Point对象调用addFeature()函数时,无法添加Point的成员,只能添加继承自Feature的成员;
我觉得应该是addFeature函数没有为子类开辟出存储空间,所以无法存放子类对象,请问如何解决,才能让addFeature函数根据类型来动态分配存储空间呢?

1个回答

tlxzsz
tlxzsz   2014.02.19 18:14
已采纳

分配什么空间?
你的Point ,line,Area三个类是不是都继承Feature
可以把Feature的成员定义成虚成员virtue
在子类中都在定义一下该成员就可以了。

tlxzsz
tlxzsz 采纳啊。你自己也加分的
接近 4 年之前 回复
unclejimbo
unclejimbo 问题已经解决了,是运行时类型识别的问题,不过还是谢谢啦
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!