问题标签 [private-constructor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
599 浏览

java - 具有私有构造函数的通用对象

这是我的问题。我想要一个带有私有构造函数的类,它可以用多个静态方法创建,就像Box.createHorizontalBox(). 当这个类使用泛型时,它变得复杂。

请告诉我如何正确执行此操作:

这不起作用:Eclipse 强调了intfromcreateHorizontalWorkFlow<T>(int _arrowSize)并给了我错误Syntax error on token(s), misplaced construct(s)

0 投票
4 回答
316 浏览

c++ - 这段代码如何创建一个只有私有构造函数的类的实例?

我正在开发一个声音库(使用 OpenAL),并从 FMOD 提供的界面中获得灵感,您可以在此链接中看到该界面。

我提供了一些概念,例如:声音、通道和通道组,正如您通过 FMOD 接口看到的那样,所有这些类都有一个私有构造函数,例如,如果您要创建一个声音,您可以使用提供的函数createSound()通过 System 类(如果您要创建 Channel 或 ChannelGroup,则相同)。

我想提供一个类似的机制,但我不明白它是如何工作的。例如,函数createSound()如何创建一个新的声音实例?构造函数是私有的,并且在 Sound 接口中没有任何静态方法或友谊。是否使用了一些模式?

编辑:只是为了让 OP 的问题更清楚,他/她没有问如何使用私有构造函数创建类的实例,问题在发布的链接中,如何创建具有私有构造函数且没有静态方法或朋友的类的实例功能。

谢谢。

0 投票
4 回答
2684 浏览

c++ - 关于包含不可复制成员引用的类的复制构造函数的建议

我有一个 A 类,它作为成员引用了 B 类的对象。B 类的复制构造函数(和赋值运算符)是私有的。你认为使用 A 的默认复制构造函数是一个有效且好主意吗?(我实际上想要一个功能,我可以在某种 STL 容器中存储大量 A 类型的对象,这需要分配能力和复制能力。)

到目前为止,据我所知,对上述方法的反对意见如下,但我的设计并未面对它。我想知道上述示例是否还有其他问题/问题/疑虑...

  1. 只有引用被复制,因此当类型 B 的原始对象 b 被销毁时会出现问题。(不适用,因为 b 在整个范围内都可用。)
  2. b_ 对于 A 的每个实例都是唯一的吗?(不,B 实际上只在作用域中实例化一次,因此它具有单例类的效果。)

如果还有其他问题,请在此处列出。我不热衷于明确定义的复制构造函数,但我对此持开放态度。

0 投票
3 回答
13596 浏览

c++ - 实例化一个派生类对象,其基类 ctor 是私有的

如何实例化派生类对象,其基类ctor是私有的?

由于派生类 ctor 隐式调用基类 ctor(它是私有的),因此编译器会出错。

考虑下面的示例代码:

此代码给出了编译错误:

access_private_ctor_in_base_class.cpp:在构造函数 derived::derived()': accessing_private_ctor_in_base_class.cpp:9: error:中 base::base()' 是私有的 access_private_ctor_in_base_class.cpp:18:错误:在此上下文中

如何修改代码以消除编译错误?

0 投票
1 回答
542 浏览

c++ - C++ 中具有私有构造函数的子类

我有一个简单的问题。子类可以在 C++ 中有一个私有构造函数(即用于单例实现)吗?

这个例子对吗?

0 投票
1 回答
1896 浏览

c++ - 如何限制从某个类创建对象

我有一个“银行”类和一个“分行”类。“分支”继承自“银行”。我只想允许“银行”对象创建新的“分支”对象。(例如只有花旗集团可以开设新的花旗银行分行)。

实现这一目标的最佳设计模式是什么?

我目前正在使用带有私有构造函数的朋友类。但我不确定这是否是正确的方法。

0 投票
2 回答
195 浏览

c++ - 为什么构造函数 Zlib_init 在 Bjarne Stroustrup 的书中的类 Zlib_init 中保持私有

在 Bjarne Stroustrup 的《C++ 编程语言》一书中,作者说:

有时,当您设计一个库时,有必要或者只是为了方便,发明一种具有构造函数和析构函数的类型,其唯一目的是初始化和清理。这种类型只能使用一次:分配一个静态对象,以便调用构造函数和析构函数。例如:

不幸的是,不能保证这样的对象在它第一次使用之前被初始化并且在它最后一次在由单独编译的单元组成的程序中使用之后被销毁。

为什么作者将构造函数和析构函数保留为私有成员?如果我们在由单独编译的单元组成的程序中使用它,为什么这种方法不起作用?它不需要定义成员x来调用构造函数Zlib_init()和析构函数~Zlib_init()吗?那么这个方法有什么用呢?它在本书的第 10.4.9 节中。

0 投票
3 回答
14453 浏览

c# - .Net 中的私有与静态构造函数

我搜索了很多,但没有一个答案是明确的(至少对我来说!)。现在我把这个问题放在 SO 中,因为我相信我无法在其他任何地方得到更明确的答案。

我什么时候应该在我的类中使用私有/静态构造函数?

我厌倦了通常的答案,所以请帮助我提供一些实时示例以及使用这些构造函数的优点/缺点。

0 投票
1 回答
4221 浏览

c++ - 朋友类可以在 C++ 中调用私有构造函数吗?(什么是单例)

考虑 A 类和 B 类。A 类与 B 类友好。B 类有一个私有构造函数。A类可以创建B类实例,还是私有构造函数向编译器指示该类不能被实例化,即使是朋友类?
这是一些示例代码:

另外,请注意我使用的是 C++03。如果它在 C++03 中无效,在 C++11 中是否允许?

作为一个附带问题,Singleton 方法是如何相关的?它是否专门处理实例化一个对象的一个​​且仅一个实例,还是其他什么?

0 投票
3 回答
276 浏览

c++ - 如何使用静态对象和方法!?C++ 挫折

所以我已经做了几个小时我认为会快速简单的项目,但我无法让它工作!这让我很沮丧,哈哈,我必须接近,但也许我不是。

我将在我的代码中包含解释它应该做什么的注释。本质上它使用私有构造函数和析构函数。一个成员整数,然后是一个公共静态函数,用于返回对类中对象的引用 - 以及一个应该显示成员整数并递增它的公共函数。我不断收到范围和初始化错误。

以下是错误:

任何帮助或建议将不胜感激!

这是我的代码(Singleton.h、Singleton.cpp、main.cpp):

单例.h:

单例.cpp:

主.cpp:


想法/建议/问题/疑虑?任何事情都将有助于减轻这给我带来的挫败感,哈哈。给我造成这样的问题似乎太简单了。谢谢!