object-initialization相关内容

为什么在堆中创建对象或堆栈中的临时对象时,隐式构造函数将结构中的 POD 初始化为零?

标准和 C++ 书说,类类型成员的默认构造函数由隐式生成的默认构造函数调用,但内置类型未初始化.但是,在这个测试程序中,在堆中分配对象或使用临时对象时,我得到了意想不到的结果: #include结构容器{诠释n;};主函数(){容器 c;std::cout ..

抽象超类 scala 中的断言创建 NPE

以下代码,在 REPL 中输入时 abstract class A { val aSet: Set[Int];需要(aSet.contains(3))}B 类扩展 A { val aSet = Set(4,5,6) }新 B() 给出一个空点异常,而不是一个不变的失败. 解决这个问题的最佳习语是什么? 类似问题: 代码契约:抽象类中的不变量 Scala 抽象类中的私有构 ..
发布时间:2021-11-26 16:24:18 其他开发

抽象超类 scala 中的断言创建 NPE

以下代码,在 REPL 中输入时 abstract class A { val aSet: Set[Int];需要(aSet.contains(3))}B 类扩展 A { val aSet = Set(4,5,6) }新 B() 给出一个空点异常,而不是一个不变的失败. 解决这个问题的最佳习语是什么? 类似问题: 代码契约:抽象类中的不变量 Scala 抽象类中的私有构 ..
发布时间:2021-11-25 08:56:19 C#

为什么使用val实现抽象方法并从val表达式中的超类调用返回NullPointerException

我有一个带有未实现的方法 numbers 的抽象类,它返回一个数字列表,这个方法用于另一个 val 属性初始化: 抽象类 Foo {val calcNumbers = numbers.map(calc)定义数字:列表[双]} 实现类使用 val 表达式实现: class MainFoo extends Foo {val numbers = List(1,2,3)} 这编译得很好,但在运行时 ..
发布时间:2021-07-15 19:39:43 其他开发

如何使用循环对象初始化识别/获取自动提示,从而在Scala中导致死锁?

由于循环对象初始化,以下代码会在将来的超时中运行(在Scala 2.x和Dotty中,-Xcheckinit或-Ycheck-init在这里没有帮助)。在复杂的项目中,这些周期通常被很好地隐藏。是否有可能从编译器或至少在运行时寻求帮助?如何防止这种情况在多线程环境中发生? import scala.concurrent.Future import scala.concurrent._ ..
发布时间:2020-10-19 04:08:49 其他开发

Python模块初始化

在模块代码中初始化模块中的对象是否是错误的做法? 在Module.py中: class _Foo(object): def __init__(self): self.x = 'Foo' Foo = _Foo() 比起用户代码,您可以: >>> from Module import Foo >>> print Foo.x 'Foo' >>> ... ..
发布时间:2020-05-20 01:27:41 Python

在新表达式中分配内存后是否对初始化程序求值?

考虑代码 auto p = new T( U(std::move(v)) ); 则初始化器为U(std::move(v)).假设T( U(std::move(v)) )没有抛出.如果在基础内存分配之后对初始化程序进行了评估,则该代码将是强异常安全的.否则,事实并非如此.如果抛出了内存分配,则v应该已经被移动了.因此,我对内存分配和初始化程序评估之间的相对顺序感兴趣.它是定义的,未指定的还 ..

为什么结构中的POD在创建堆中的对象或堆栈中的临时对象时由隐式构造函数初始化?

标准和 C ++书说,类类型成员的默认构造函数由隐式生成的默认构造函数调用,但内置类型不会初始化。但是,在这个测试程序中,当在堆中分配对象或使用临时对象时,会得到意外的结果: #include< ; iostream> struct Container { int n; }; int main() { Container c; std :: cout ..