?????????????????????????????object??????????????????????????????????????????object??????????????????????????????public???Σ???????????????private?????л?????????????????ζ??????
?????????????????????????????????????????ù?????(????е??)??????????y???????????????????????class??????????????繹????????е????????class?????????????г?????????????±???????
?????????????class?????????????????static???г????????????????class???????????????????????????????
??????????????????class??л??????????????????????????????????class???????????????class?????????????????????????? ?????????????????????????????static???г?????????????class???????????“????”????????????????????static?????д? ?????class?????????????????????????????????????????????????????????е???????????????????????????????????????
???????????????
class OnlyHeapClass
{
public:
static OnlyHeapClass* GetInstance()
{
// ???????OnlyHeapClass?????????????
return (new OnlyHeapClass);
}
void Destroy();
private:
OnlyHeapClass() { }
~OnlyHeapClass() {}
};
int main()
{
OnlyHeapClass *p = OnlyHeapClass::GetInstance();
... // ???*p
delete p;
return 0;
}
??????????????????й???????GetInstance()???OnlyHeapClass???????????????????д?????????????純??????????????????????????????????????????????????????getInstance()????????????????????????????????
????????????л????????????????????????????????????????????????????????????????磬??????????class???????????????????????????????????????????????class???????????????static?????????????????????0???????GetInstance()????Щ???????ε?????????????????????????????????????????????????????????????new???μ???????????????????1.???????????????????μ????????????????????????????????????????????????????С?
???????????????????Protected?????????????????????????????С?
??????????α??????????new????μ????????????????????????????г????
?????????C++??????????????????????????У????е???麯????????????????ɡ???????麯??????????????????Щ??????????????????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????OnlyHeapClass????????????????????????????????С?delete?????????????????????????????
???????????????????????????????????????????delete???????????????У??????????????????????detele??????????????????
????void OnlyHeapClass::Destroy() {
????delete this;
????}
????????????л???????????????????new????????????????????????????????????????????????????????????????????????????????????????????????????
????????????delete??new???п????????????????????????placement new??????????????