嗨,我有一个代码片段,它是一个单例类(我相信),它以以前从未见过的方式使用'new'和其他一些作用域和静态限定符。因为我不知道它叫什么,所以找不到有关它的用途或目的的任何信息。代码如下:
在myClass.h文件中
class myClass
{
private:
static myClass sm_myClass;
myClass();
public:
static void Create(void);
};
Run Code Online (Sandbox Code Playgroud)
在myClass.cpp中,我有
#include "myClass.h"
#include <new>
myClass* p_myClass = NULL;
myClass myClass::sm_myClass;
myClass::myClass()
{
}
void myClass::Create(void)
{
p_myClass = &sm_myClass;
new (p_myClass) myClass();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
1-.cpp文件的第6行(myClass myClass :: sm_myClass;)发生了什么
2-.cpp文件的第16行(new(p_myClass)myClass();)发生了什么
3-以这种方式使用类的总体目的是什么?
我真的希望这个问题不再重复。我搜索了一段时间,但不知道要搜索什么词。谢谢你的帮助。