重载新运算符

0 c++ overloading operators

是否可以重载new操作符以便不创建对象,而是返回现有对象.

如果可以的话,你怎么能在第一时间创建对象:D

这听起来很奇怪我知道.我试图隐藏客户端的一些细节.我在PS2上制作游戏,我想要有New Foo()语法,但想要一个可以替代使用的预制对象列表.

当新操作符返回指向可用内存的指针时,我不认为会绕过这一点.

new Foo;

struct Foo
{
    void* operator new(std::size_t)
    {
        // return pre made obj.
    }

};
Run Code Online (Sandbox Code Playgroud)

Unc*_*ens 6

据我所知,你不能改变它实际构建对象的方面.重载运算符只返回原始内存,然后该语言在此内存中自动构造对象.你无法控制这一步.

无论如何,如果你没有得到一个新的对象,那么该语法的意义何在?