在C ++的私有部分中声明构造函数有什么用? 我们可以在私有部分声明友元函数和构造函数,但有什么用?
答案 0 :(得分:0)
如果将构造函数声明为private
,除了类本身之外的任何人都可以创建它的新实例。最有可能的是,有一个静态方法返回一个类实例。这可以对给定程序中存在的实例数量进行一些控制。
singleton pattern是这种做法的一个应用。通过使用私有构造函数和其他一些技巧,您可以确保只存在此类的单个实例,因为用户不能仅自己创建new
实例。
答案 1 :(得分:0)
有许多私有构造函数的场景。
例如:
私有构造函数意味着用户无法直接实例化类。相反,您可以创建对象,您可以在其中创建可以创建和返回类实例的静态类函数。
另一个用途是prevent inheritance of your class,因为派生类将无法访问类的构造函数。当然,在这种情况下,您仍然需要一个创建类实例的函数。
它也常用于Singleton模式,其中通过静态成员函数访问对象,否则每个人都可以创建类的实例,因此它不再是单例。对于单身人员,根据定义,只能存在一个实例。
答案 2 :(得分:0)
E.g。通过使构造函数私有,您可以控制对象的构造。也许您希望只有n个对象实例同时存在。您可以创建一个对此进行计数的函数。另请参见单例模式