问题标签 [object-construction]

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 回答
82 浏览

c++ - C++ 中的继承:构造顺序

这是该程序中发生的情况:

接下来是什么?复制发生在哪里 - Child 的 Parent 的复制构造函数?在返回 main ( ) 之前,所有控件都在哪里运行?

0 投票
0 回答
61 浏览

c++ - 了解启动对象构建过程和UB

以下示例在 12.7/3 N3797 中给出

示例规则:

显式或隐式地将引用 X 类对象的指针(泛左值)转换为指向 X 的直接或间接基类 B 的指针(引用),X 的构造及其所有直接或间接基类的构造从 B 直接或间接派生的那些应该已经开始并且这些类的销毁应该没有完成,否则转换会导致未定义的行为。

但考虑对示例进行一些修改:

我认为//1没有UB,因为我们有HD在调用构造函数之前构建的类的基本子对象D(A*)。也就是说,在 D(A*) 调用时, 的构造D已经开始。

我的推理正确吗?

0 投票
5 回答
61 浏览

javascript - 在 javascript 创建对象和操作属性

我通过两种不同的方式创建对象并尝试接触它们并操纵它们。我通过对象构造函数创建的对象它可以工作,但我尝试通过文字表示法做的同样的事情不起作用。我不明白。

这是代码,它会比我更好地解释自己:

0 投票
1 回答
88 浏览

groovy - 如何使用 Groovy 将 @ToString 生成的字符串转换回对象

例如,以下类的实例产生字符串A(x:7, values:[hello, world])

如何将此字符串转换回该类的实例?

0 投票
5 回答
2130 浏览

java - 我应该如何使用超类的实例构造子类?

假设我有以下代码

但是,现在我希望能够将 SuperClass 对象传递给 SubClass 构造函数。我该怎么做?

基本上,我想做这样的事情......

但是如果 SuperClass 更复杂,我不想将每个值都添加到 super() 调用中。相反,我想简单地传入一个已经存在的对象,并将其用作超类。

我想做这个...

但我不确定这是否允许?


如果我将构造函数添加到 SuperClass 定义中,似乎我可以执行上述操作。但那会是什么样子?

0 投票
1 回答
131 浏览

php - PHP 安全漏洞,用于对象实例化的未经验证的 Post 数据

我正在查看一些基本的 PHP 代码,这些代码通过 ajax 调用从 POST 数据中获取字符串。POST 数据用于直接实例化名称与 POST 字符串的值等效的类。假设类自动加载器所做的所有事情都是在找不到类时抛出错误或异常,那么恶意用户会在这里造成什么伤害?

POST 一个需要参数的标准 PHP 类名,或者 POST 'stdClass' 除了阻止返回视图外,不会做太多事情。除此之外,还有什么可能?此外,当添加新的视图类时,验证和保持灵活性的最佳方法是什么。

0 投票
2 回答
517 浏览

c++ - 转发就地构造和列表初始化

通过转发就地构造,我的意思是std::allocator::construct和各种 emplace 方法,例如std::vector::emplace_back。我只是发现 C++ 中的转发就地构造没有(不能?)利用列表初始化语法。结果,似乎永远无法就地构建聚合。我只想确定转发的就地构造是否不支持列表初始化,因此不支持聚合类型。这是因为语言的限制吗?有人可以提供有关此问题的标准参考吗?下面是一个插图:

虽然我们可以直接进行就地施工,例如

我们不能像

0 投票
0 回答
258 浏览

c++ - 使用原始数据构造 valarray

看来我可能正在使用std::valarray<_Tp>s 进行一些计算工作(假设_Tpuint64_t)。不幸的是,以下成立:

  • 我的代码接收原始数组 - uint64_t*s 和一个长度值 -
  • 我无法更改签名/API。不过他们是__restrict__编的。
  • std::valarray 的构造函数采用 a_Tp*和 a 长度复制整个数组。
  • 似乎没有设置std::valarray内部数据的方法;它甚至是私有的,因此您无法在子类中访问它。

那么如何在不复制我的数据的情况下打破这个难解的结并构造一个 valarray 呢?

0 投票
3 回答
359 浏览

javascript - 在对象文字上扩展原型

如果我有以下代码,为什么它会返回一个错误,说 Cannot set property 'second_prop' of undefined 。我认为您可以扩展原型属性并为对象原型添加更多变量和方法。既然两个console语句都返回'Object'和true,那为什么返回undefined的错误。我的想法是,如果“obj”是 Object 类型的对象,那么我应该能够做 temp.prototype.newproperty?因此,对象将具有“新属性”。但我显然错了,所以我在这里遗漏了一些东西。更重要的是,当 obj 已经是对象文字时,为什么我需要执行 Object.create() ?不是已经是对象了吗?我只是在看一些例子并试图理解这一点

输出

那么,为什么我不能做 temp.prototype 或 obj.prototype?

0 投票
3 回答
1397 浏览

java - JVM 是否在内部为抽象类实例化对象?

我有一个抽象类及其具体子类,当我创建子类的对象时,它会自动调用超级构造函数。JVM 内部是否创建了抽象类的对象?

那么构造函数如何在 JVM 中没有对象存在?(在抽象类的情况下)

在创建对象之后执行构造函数然后不创建抽象类的对象默认构造函数如何执行?(这在Java Doc中有提到)