【发布时间】:2013-06-18 07:32:28
【问题描述】:
出于任何原因,我有一个由调用私有构造函数的静态方法创建的对象。 (不是单例)
我想从第一个派生一个新对象,它有更多的成员和功能。
但这是有问题的,因为静态方法返回一个firstObject* 对象,所以使用secondObject* 向下转换的创建会导致内存溢出。
我该怎么办?我可以访问第一个对象的代码,但无法更改它的构造函数(如果我更改它,我将不得不更改一个巨大的书面代码)。
编辑:
感谢所有响应者。我可以更改要保护的构造函数。
【问题讨论】:
-
发布代码比描述它更好。我不能完全从你的问题中找出问题所在。
-
将私有构造函数标记为受保护真的会导致必须重写那么多代码吗?然后以正常方式从中派生一个类。
-
如果您真的遇到内存溢出,那么问题出在其他地方。您的问题中没有任何内容与内存溢出有关。
-
请不要编辑您的问题以将其标记为已回答:要么接受一个正确答案,要么如果您不喜欢这些答案,请自己编写并接受。
-
@ereOn:你解决了他的问题,他在 16 分钟前忘记了你,而且还在数:)。
标签: c++ inheritance memory casting private-constructor