题目:写一个只能构造一个对象的类

题目:写一个只能构造一个对象的类

整理:CmdHack

时间:201012419:47:49

 

分析:

       构造函数分为有参构造 无参构造 拷贝构造 三种方法

 

       对象又分为栈中构造对象和堆中构造对象

 

   首先来按照普通的做法写一个类如下

很显然如果单单这样可以构造无数个对象   那我设想一下如果在构造函数中做一个

限制比如 构造一个对象之后  如果产生第二个对象就将其删除如何呢

一:delete this (只对堆中的对象起作用)

二:用个静态变量做次数限制 如果产生一个对象之后再产生对象立刻调用析构函数

(如果是在栈中产生的对象  那么这个变量的生死存亡只有由系统决定即 显示

调用析构函数没有任何效果,  当然如果是在堆中产生的对象可以在析构函数

中使用delete this  显示调用析构函数可以删除对象)

所以如果构造函数属于Public 的话我们是没有办法只产生一个对象的

 

====

那么只有将构造函数的放在private:中了

那如果是private怎么来调用构造函数构造对象呢  成员函数么  当然不是了

成员函数的调用约定是_thiscall  没有对象怎么调用呢   那只有用刚刚学过的静态成员函数(_cdecl调用约定) 没有对象也可以调用  然后再用静态成员变量来做个数限制   具体实现过程如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值