C++如何限制类对象只能静态分配或者只能只能动态分配
来源:互联网 发布:金山软件拆分 编辑:程序博客网 时间:2024/05/23 01:15
动态分配就是用运算符new来创建一个类的对象,在堆上分配内存。
静态分配就是A a;这样来由编译器来创建一个对象,在栈 上分配内存。
(1)动态分配(在堆上分配内存)
将类的构造函数和析构函数设为protected属性,这样类对象不能够访问,但是派生类能够访问,能够正常的继承。同时创建另外两个create和destory函数类创建对象。(将create设为static原因是:创建对象的时候是A *p = A::create(); 只有静态成员函数才能够通过类名来访问。)
class A{protected: A(){} ~A(){}public: static A* create() { return new A(); } void destory() { delete this; }};
把new、delete运算符重载为private属性就可以了。
class A{private: void* operator new(size_t t){} // 注意函数的第一个参数和返回值都是固定的 void operator delete(void* ptr){} // 重载了new就需要重载deletepublic: A(){} ~A(){}};
0 0
- C++如何限制类对象只能静态分配或者只能只能动态分配
- C++如何限制类对象只能静态分配或者只能只能动态分配
- C++如何实现类对象只能动态分配或只能静态分配
- 实现只能动态分配或只能静态分配。
- C++常见知识点复习-如何限制类对象只能在堆上或者栈上分配
- 怎么限制一个类的对象实例,只能在"堆"上分配,或者只能在"栈"上分配
- 只能动态/静态分配类对象
- 如何限制对象只能建立在堆上或者栈上
- 如何限制对象只能建立在堆上或者栈上
- 如何限制对象只能建立在堆上或者栈上
- 如何限制对象只能建立在堆上或者栈上
- 如何限制对象只能建立在堆上或者栈上
- 如何限制对象只能建立在堆上或者栈上
- 如何限制对象只能建立在堆上或者栈上【转载】
- 如何限制对象只能建立在堆上或者栈上
- 如何限制对象只能建立在堆上或者栈上
- 如何限制对象只能建立在堆上或者栈上
- C++如何实现只能动态分配类对象,不能定义类对象
- Delphi相关的几个博客
- uva 230
- mysql数据库索引的创建及使用
- 程序员面试宝典(第四版) —— 运算符问题 | a、b 交换与比较
- Android图形显示系统——上层显示2:硬件加速实现
- C++如何限制类对象只能静态分配或者只能只能动态分配
- 【思想感悟】——重新认识今目标
- Android Studio与Android SDK 在线更新的解决方案(1.3.2)
- Linux安装详解-配置ks.cfg实现自动安装过程
- Oracle建立表空间和用户
- Android 开发 - 个人小结
- SQL SERVER 2008安装的时候提示“该实例名称已在使用”解决办法。
- Android基础复习之Spinner
- android的通知栏——Notification