根据Microsoft类总是包含默认构造函数,它是私有的,那么如何在另一个类中启动对象。具有私有辅助功能的默认构造函数
回答
你已经错过了article的最重要的部分:
私有构造函数是一种特殊的构造函数。 通常用于只包含静态成员的类中的是 。如果一个类 有一个或多个私有构造函数和没有公共构造,其他 类(除了嵌套类)不能创建此类
的情况下,他们在如何使用的文章会谈显示了常用的用例静态成员只能通过上述类,像这样:
class NLog
{
// Private Constructor:
private NLog() { }
public static double Foo = 3.284;
}
类没有默认构造函数private
,they have a public
one (except for abstract classes):
如果该类是抽象的,则 默认构造函数的声明可访问性为受保护。否则,默认构造函数的可访问性为public。因此,默认的 构造函数始终为表格形式
我不明白为什么这个类不会被标记为静态的,如果它的所有成员都是静态的......但的确是在答案:) – Kritner
@Kritner它肯定可以被标记为'静态',尽管它没有'必须是。 –
您只是误读了该页面。对于没有定义构造函数的类:
class C {}
存在一个默认的,公共的构造,C()
。
如果你明确声明了一个构造函数,那么这个默认构造函数将不存在。如果你宣布你的构造函数,如:
class C
{
C()
}
那么这将是私人的,因为除非使用明确的public
,internal
或protected
访问修饰符所有集体成员都是私有的。
“空构造函数的声明阻止默认构造函数的自动生成”(https://msdn.microsoft.com/en-us/library/kcfb85a6.aspx)
如果你声明一个空的构造函数(无论是私人与否,并不重要),可以防止默认的一代(它总是公开的)。
- 1. 具有默认构造函数和具有私有构造函数差异的类的抽象类
- 2. 构造函数在斯卡拉(主/辅助/默认主)
- 3. Scala辅助构造函数
- 4. 具有所有类属性的构造函数或具有setter的默认构造函数?
- 5. “RavenReader.Web.Controllers.UserController”没有默认的构造函数
- 6. System.Configuration.Cast没有默认的构造函数
- 7. 没有默认的构造函数
- 8. 是否有可能在Scala中继承辅助构造函数?
- 9. Kotlin - 具有私有构造函数的工厂函数
- 10. DatabaseManager没有默认构造函数
- 11. 没有默认构造函数发现
- 12. @Delegate类没有默认构造函数
- 13. 成员没有默认构造函数
- 14. 没有默认构造函数 - 继承
- 15. 具有空括号的默认构造函数C++错误
- 16. 具有unique_ptr和线程的默认向量构造函数
- 17. 是否有默认的默认构造函数?
- 18. 没有默认构造函数的默认值
- 19. 没有适当的默认构造函数可用并且没有默认的构造函数
- 20. 创建具有非默认构造函数阿卡童星
- 21. IXmlSerializable类型'System.Xml.Linq.XElement'必须具有默认构造函数
- 22. 以下哪些类具有默认构造函数?
- 23. 我怎样才能有可选的默认构造函数?
- 24. Guice辅助注入与多个构造函数总是调用默认构造函数
- 25. 默认和默认构造函数有什么区别
- 26. 类具有的std ::对象的数组,但没有默认构造函数
- 27. 为什么我无法从私有类中的参数化构造函数调用默认构造函数?
- 28. 具有静态方法和私有构造函数的final类?
- 29. 是一个私有构造函数的默认构造函数,它的用途是什么?
- 30. 类默认构造函数
你从哪里读到的? –
构造函数|私人|全部¹ –
向我们显示链接 –