问题标签 [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 投票
4 回答
29996 浏览

c# - 如何在 C# 中使用私有构造函数实例化对象?

我绝对记得在某处看到一个使用反射或其他东西的例子。这是与用户无法创建的事情有关SqlParameterCollection(如果我没记错的话)。可惜再也找不到了。

有人可以在这里分享这个技巧吗?并不是说我认为它是一种有效的开发方法,我只是对这样做的可能性非常感兴趣。

0 投票
1 回答
485 浏览

c++ - Impossible to inherit from this object?

Following up on this question, people have suggested I go with "option 3" which might look like this:

Try it online

But there are two major problems with this:

  1. Body can never be constructed, even with World::CreateBody (because b2Body is private)
  2. Even if it could, then the b2Body part wouldn't be initialized correctly (b2World::CreateBody needs to be called)

Does this mean I can never inherit from b2Body/b2World and follow this same design pattern? (keep in mind that I can't edit the b2* classes)

If so, I suppose you guys would recommend I just keep b2World and b2Body as member variables instead?


I think it comes down to these two options now:

0 投票
3 回答
1027 浏览

c++ - c ++:私有构造函数意味着在标题中没有定义该类对象?

还有一个问题,跟我来!...无论如何,我有 2 个带有私有构造函数和静态函数的类来返回该类的实例。一切都很好,我有一个 main.cpp 文件,通过执行以下操作,我设法获取了我的 gameState 对象指针:

但是现在我好像有问题。为方便起见,我希望 gameState 实例和 actionHandler 实例都保留指向彼此的指针副本。所以我尝试在彼此的头文件中包含:

然而,这似乎不起作用......我得到“错误C2143:语法错误:缺少';' 在这两行的'*'”错误之前......如果某个类有一个私有构造函数,你不能在标题中定义某个类的变量吗?或者问题是别的什么?或者可能是因为指向实例的指针存储为静态成员?

编辑:谢谢大家!令人惊讶的是,我在过去几天获得的 C++ 知识量……太棒了!

0 投票
6 回答
4506 浏览

java - 防止从Java中的类中调用私有构造函数

我们可以通过将构造函数设为私有来限制类对象的创建。但是这个构造函数仍然可以从类中调用。有没有办法在Java中防止这种情况?

谢谢。

0 投票
6 回答
307 浏览

c++ - 如何使用复制构造函数和复制赋值为私有的对象?

在阅读TCPL时,我遇到了一个问题,正如标题所指的那样,然后“私人”课程是:

使用代码是:

我想执行这样的操作:

虽然,这些代码来自 TCPL,但我仍然无法得到解决方案......任何人都可以帮助我,不胜感激。

0 投票
1 回答
118 浏览

c++ - 如何使用获得私有复制构造函数和赋值构造函数的对象?

可能重复:
如何使用其复制构造函数和复制赋值是私有的对象?

在阅读TCPL时,我遇到了一个问题,正如标题所指的那样,然后“私人”课程是:

使用代码为:

我想做这样的操作

虽然,这些代码来自 TCPL,但我仍然无法得到解决方案......任何人都可以帮助我,不胜感激。

0 投票
1 回答
4754 浏览

c++ - 在 C++ 中,我可以将类类型表示为变量吗?

我想从我将在运行时确定的类中调用一个静态方法,但我知道它是给定类的子类。所以假设我有这些课程

假设我想在运行时(根据文件中的内容)确定接下来是加载 subA 还是 subB。我可以做到这一点的一种方法是使用一个空对象来调用该方法

但是我已经将 subB 的无参数构造函数设为私有,所以我不能在这里这样做。但我实际上并不需要超级对象,只需要超级子类的类类型。那么有没有办法将其表示为变量?

编辑:我知道在这种情况下,我可以返回一个函数指针,但我正在考虑可能需要调用多个静态函数的更复杂的示例。

0 投票
4 回答
5321 浏览

c++ - C++ 私有构造函数

如果我不想允许任何人创建我的类的实例,除了我的静态函数(我认为这被称为单例/工厂?),是否足以使默认构造函数私有,或者我还需要显式定义并使私有成为复制构造函数和赋值运算符?

0 投票
7 回答
104325 浏览

c++ - 私有构造函数

可能重复:
在类中将构造函数设为私有有什么用?

我们在哪里需要私有构造函数?我们如何实例化具有私有构造函数的类?

0 投票
3 回答
584 浏览

c++ - 这是对私有构造函数的好用吗?

如果以下是好的或坏的设计,我会每天尝试学习新的东西。

我正在实现一个A将自身对象缓存在静态私有成员变量中的类std::map<> cache。的用户A应该只能访问指向地图中元素的指针,因为完整的副本A很昂贵且不需要。A仅当地图中尚不可用时才会创建新的,因为构建A需要一些繁重的工作。好的,这里有一些代码:

上面的代码有什么问题吗?是否有任何陷阱,我是否错过了内存管理问题或其他任何问题?

感谢您的反馈意见!