首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

将构造函数设为私有的为什么用处

2012-12-16 
将构造函数设为私有的为何用处class A{public:class Bprivate:int valA(int a0):val(a){}//私有构造函

将构造函数设为私有的为何用处



class A
{
  public:  class B;
  private:
     int val;
     A(int a=0):val(a){}  //私有构造函数
 };
 class A::B
  {
    A a;
    public:
     B(int p=0):a(p){}
   };

[最优解释]
用处可大了,构造函数为私有,因此无法直接声明变量。于是这个类就可以有下面的功能:
1. 重载new函数,哈,这个类变成了只能在堆上创建,不能在栈上创建~
2. 可以用来解决C++中有名的单例模式了。
3. 可以定制类的对象个数。
[其他解释]
引用:
引用:推荐 more efective C++, 上面有解释
求个电子版的地址


http://wenku.baidu.com/view/02ad645c804d2b160b4ec08c.html
[其他解释]
这不很明显嘛,避免在类外定义对象

int main()
{
A a; // 错误

return 0;
}


singleton模式的实现一般也是私有构造函数,自己搜
[其他解释]
可以看一下MoreEffectiveC++,这样做可以限制对象的产生。禁止产生对象,或者限制对象产生的个数。
[其他解释]
典型应用:实现单例
[其他解释]
防止在本类作用域外实例化本类对象。
[其他解释]
推荐 more efective C++, 上面有解释
[其他解释]
引用:
用处可大了,构造函数为私有,因此无法直接声明变量。于是这个类就可以有下面的功能:
1. 重载new函数,哈,这个类变成了只能在堆上创建,不能在栈上创建~
2. 可以用来解决C++中有名的单例模式了。
3. 可以定制类的对象个数。

太抽象,举个例吧
[其他解释]
引用:
推荐 more efective C++, 上面有解释

求个电子版的地址
[其他解释]
另如何定制类的对象个数
[其他解释]
引用:
推荐 more efective C++, 上面有解释

不知该瞧哪个知识点?

热点排行