只能在栈上创建 不能new
Widget *w=new Widget;出错
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
void* operator new(size_t){}
void operator delete(void*){}
};
只能在堆上创建 只能new
Widget w;//出错
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
private:
Ui::Widget *ui;
~Widget();
};
本文探讨了C++中特定类Widget的内存管理方式:一种仅允许在栈上创建对象而不允许使用new操作符分配堆内存,另一种则仅允许通过new操作符在堆上创建对象。通过这种方式,展示了如何通过自定义new和delete操作符来控制类实例的存储位置。
693

被折叠的 条评论
为什么被折叠?



