私有部分的构造函数

时间:2014-03-29 07:27:04

标签: c++ constructor

在C ++的私有部分中声明构造函数有什么用? 我们可以在私有部分声明友元函数和构造函数,但有什么用?

3 个答案:

答案 0 :(得分:0)

如果将构造函数声明为private,除了类本身之外的任何人都可以创建它的新实例。最有可能的是,有一个静态方法返回一个类实例。这可以对给定程序中存在的实例数量进行一些控制。

singleton pattern是这种做法的一个应用。通过使用私有构造函数和其他一些技巧,您可以确保只存在此类的单个实例,因为用户不能仅自己创建new实例。

答案 1 :(得分:0)

有许多私有构造函数的场景。

例如:

  • 限制对象创建
  • 对于单身人士模式
  • 限制某些类型的构造函数(例如复制构造函数,默认构造函数)

私有构造函数意味着用户无法直接实例化类。相反,您可以创建对象,您可以在其中创建可以创建和返回类实例的静态类函数。

另一个用途是prevent inheritance of your class,因为派生类将无法访问类的构造函数。当然,在这种情况下,您仍然需要一个创建类实例的函数。

它也常用于Singleton模式,其中通过静态成员函数访问对象,否则每个人都可以创建类的实例,因此它不再是单例。对于单身人员,根据定义,只能存在一个实例。

答案 2 :(得分:0)

E.g。通过使构造函数私有,您可以控制对象的构造。也许您希望只有n个对象实例同时存在。您可以创建一个对此进行计数的函数。另请参见单例模式