【发布时间】:2012-03-28 04:53:29
【问题描述】:
我知道这也许不是世界上最好的设计,但我对答案很感兴趣 没有任何实际原因。
假设我有这两个具有重载新方法的类:
class Base {
public:
operator void* new(size_t);
};
class Child : public Base {
public:
operator void* new(size_t); //THIS, i would like this to be the "original" new.
};
operator void* Base::new(size_t) {
//...
return new Child;
//...
}
我希望 Child::new 像原来的 new 一样工作,所以我可以避免使用 malloc。
有办法吗?
先谢谢了!
【问题讨论】:
-
这个link 可能会帮助你...
-
我不认为你的
Base::operator new真的“有效”(例如,每次构建Child时它都不会被破坏)。鉴于此,很难说出您想要Child::operator new做什么。你确定你不是在寻找工厂函数吗? -
好读:How should I write ISO C++ Standard conformant custom new and delete operators?。我无法理解您要达到的目标所以我克制不要将其标记为重复,我确实感觉这就是您要寻找的。span>
标签: c++ operator-overloading new-operator