78.类如何实现只能静态分配和只能动态分配

发布时间 2023-07-11 15:22:36作者: CodeMagicianT

78.类如何实现只能静态分配和只能动态分配

1.前者是把new、delete运算符重载为private属性。后者是把构造、析构函数设为protected属性,再用子类来动态创建

2.建立类的对象有两种方式:

① 静态建立,例如 A a;

静态建立一个类对象,就是由编译器为对象在栈空间中分配内存。使用这种方法,是直接调用类的构造函数。

② 动态建立,例如 A *p = new A();

动态建立一个类对象,就是使用new运算符为对象在堆空间中分配内存。这个过程分为两步,第一步执行operator new()函数,在堆中搜索一块内存并进行分配;第二步调用类构造函数构造对象;

3.只有使用new运算符,对象才会被建立在堆上,因此只要限制new运算符就可以实现类对象只能建立在栈上,可以将new运算符设为私有。****

参考资料来源:

阿秀