C++:设计一个类,该类只能在堆上创建对象

本文介绍了如何在C++中设计一个类,使得对象只能在堆上创建。通过将构造函数设为私有并提供一个内部的静态成员函数来实现动态分配,同时为防止栈上创建,还讨论了拷贝构造函数的处理方法,特别是在C++11中的delete关键字的应用。
摘要由CSDN通过智能技术生成

创建对象:需要申请空间,然后在申请的空间上调用构造函数,完成对象的创建

方法:构造函数私有化
1.将构造函数设置为私有的,在类外就防止别人调用;
2.类外不能调用类内的私有成员函数,但类内可以,所以通过在类内实现一个静态成员函数完成对象的创建
3.将拷贝构造函数也要声明成私有的,我们本身不需要,但为了防止别人通过拷贝构造在栈上创建对象(PS:步骤3 是C++98中的,还有简单的,不用管权限,在C++11中,delete不仅可以释放空间,还可控制默认的成员函数,它告诉编译器:删除拷贝构造函数 )

#include<iostream>
using namespace std;
class HeapOnly
{
   
pub
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值