当前位置 : 主页 > 手机开发 > harmonyos >

[C++]限制一个类的对象只能在栈或堆上创建

来源:互联网 收集:自由互联 发布时间:2023-10-08
限制对象在堆中创建,private或protected析构函数 限制对象在栈中创建,private或protected new operator及new operator [] 例: class X{private: static void* operator new(size_t size) { return NULL; } static void* oper

限制对象在堆中创建,private或protected析构函数

限制对象在栈中创建,private或protected 

new operator及new operator []

例:


class X
{
private:
   static void* operator new(size_t size)
   {
       return NULL;
   }
   static void* operator new[](size_t size)
   {
       return NULL;
   }
};

关于重载operator new需要注意的

http://book.51cto.com/art/201202/317799.htm

为某个class重载operator new时必须将其定义为类的静态函数。因为operator new是在类的具体对象被构建出来之前调用的,在调用operator new的时候this指针尚未诞生,因此重载的 operator new必须是static的。



【文章原创作者:韩国高防服务器 http://www.558idc.com/krgf.html 网络转载请说明出处】
上一篇:U盘无法格式化
下一篇:没有了
网友评论