是否可以重载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)
据我所知,你不能改变它实际构建对象的新方面.重载运算符只返回原始内存,然后该语言在此内存中自动构造对象.你无法控制这一步.
无论如何,如果你没有得到一个新的对象,那么该语法的意义何在?