これは世界でも最高のデザインではないかもしれませんが、実際の理由がなくても という回答に興味があります。新しい演算子と継承のオーバーロード
は私がオーバーロードされた新しい方法でこれら二つのクラスを持っていると仮定しましょう:
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;
//...
}
私は子供:: newは、元の新しいのように動作したいと思いますので、私はmalloc関数の使用を避けることができます。
これを行う方法はありますか?
ありがとうございます!
この[リンク](http://blogs.msdn.com/b/calvin_hsia/archive/2009/01/19/9341632.aspx)はあなたを助けるかもしれません... – niktehpui
私はあなたの 'Base: :演算子newは '本当に '働いています(例えば' Child'が構築されるたびに破壊されません)。それを考えると、 'Child :: operator new'が何をしたいのかを言うのは難しいです。あなたはファクトリー機能を探していませんか? –
グッドリード:[ISO C++標準に準拠したカスタムの新規および削除演算子はどのように書くべきですか?](http://stackoverflow.com/questions/7194127/how-should-i-write-iso-c-standard-conformant-custom -new-and-delete-operators)を使用します。私はあなたが達成しようとしているものを理解することができませんので、私は重複としてこれをマークすることを控え、私はあなたが探しているものだという気持ちがあります。 –