php类中的私有化构造函数,在类中将构造函数私有化有什么用?

通过提供私有构造函数,可以防止在此类之外的任何地方创建类实例。提供这种构造函数有几种用例。

答:您的类实例是在static方法中创建的。static然后将该方法声明为public。

class MyClass()

{

private:

MyClass() { }

public:

static MyClass * CreateInstance() { return new MyClass(); }

};

B.你的课是单身。这意味着程序中最多只能有一个类实例。

class MyClass()

{

private:

MyClass() { }

public:

MyClass & Instance()

{

static MyClass * aGlobalInst = new MyClass();

return *aGlobalInst;

}

};

C.(仅适用于即将到来的C ++ 0x标准)您有几个构造函数。其中一些被宣布public,另一些被宣布private。为了减小代码大小,公共构造函数会“调用”私有构造函数,这些私有构造函数依次完成所有工作。public因此,您的构造函数称为委托构造函数:

class MyClass

{

public:

MyClass() : MyClass(2010, 1, 1) { }

private:

MyClass(int theYear, int theMonth, int theDay) { /* do real work */ }

};

D.您想限制对象复制(例如,由于使用共享资源):

class MyClass

{

SharedResource * myResource;

private:

MyClass(const MyClass & theOriginal) { }

};

E.您的课程是实用程序课程。也就是说,它仅包含static成员。在这种情况下,程序中永远都不能创建对象实例。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值