问题标签 [new-operator]

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 投票
2 回答
2550 浏览

c++ - 覆盖有关调用者的“新”和记录数据

我正在尝试编写一个内存分析器,到目前为止,我已经能够让我的自定义函数适用于 malloc、free、new 和 delete。我尝试使用__FILE____LINE__在重载的新方法中记录发起者,但是(正如预期的那样)它只提供了重载函数所在位置的详细信息。有没有办法在不对被测试组件的现有代码进行任何更改的情况下获取有关重载函数的发起者的详细信息(例如 #define for malloc)?

我正在使用的功能是:

bool b_MemProfStarted 用于避免对 ofstream 和 map.insert 的递归调用。

0 投票
14 回答
101338 浏览

c# - 新建和覆盖之间的区别

想知道以下之间有什么区别:

案例 1:基类

案例一:继承类

案例 2:基类

案例2:继承类

根据我运行的测试,案例 1 和 2 似乎具有相同的效果。有区别还是首选方式?

0 投票
5 回答
4817 浏览

c# - 您可以使用 C# new 关键字来扩展接口上的属性吗?

我了解“new”关键字如何隐藏派生类中的方法。但是,它对实现使用关键字的接口的类有什么影响?

考虑这个例子,我决定通过使其属性读/写来扩展接口。

然后你可以做这样的事情:

这是糟糕的设计吗?它会导致我的实现 ICanReadAndWrite 的类出现问题吗?

编辑: 这是一个人为的例子,说明为什么我可能想做这样的事情:

假设我有一个返回 IShoppingCartItemReadWrite 的工厂类。然后我可以有一个服务层来操纵它的价格,改变东西等。然后,我可以将这些对象作为 IShoppingCartItemReadOnly 传递给某种不会改变它们的表示层。(是的,我知道它在技术上可以改变它们——这是一个设计问题,而不是安全性等)

0 投票
1 回答
550 浏览

php - 模拟新创建的实例?

我有没有使用 TDD 的旧代码现在我想为一个看起来像这样的函数编写一个测试

因为我对 phpunit 和测试没有太多经验,所以我的问题是:我如何模拟 DB_PG?我在测试中尝试了 getMock(),但由于该函数使用“new”来获取实例,所以我的模拟对象被忽略了,这是有道理的

所以我只看到 2 个选项

  1. 我不知道 phpunit 的一些特性 - 这就是我在这里问的原因 ^^
  2. 我必须修改旧代码 - 我知道这会更好

那么,有人知道选项1的答案吗?

谢谢大家

0 投票
3 回答
190 浏览

c++ - 给类的实例一个指向结构的指针

我正在尝试在我的矢量类中获得 SSE 功能(到目前为止我已经重写了 3 次。:\)并且我正在执行以下操作:

有用!欢呼!但它比我之前的尝试慢。嘘。

我已经确定我的瓶颈是我用来获取指向结构的指针的 malloc。

在类中使用 SSE 的主要问题之一是它必须在内存中对齐才能工作,这意味着重载 new 和 delete 运算符,导致代码如下:

你不能再使用默认构造函数,你必须new像瘟疫一样避免。

我的新方法基本上是让数据在类外部,这样类就不必对齐。

我的问题是:是否有更好的方法来获取指向结构的(内存对齐)实例的指针,或者我的方法真的很愚蠢并且有更清洁的方法?

0 投票
2 回答
490 浏览

javascript - 从 javascript 中的任何给定类创建单例

我编写了以下函数,允许从给定类创建单例类:

例子:

它工作得很好,但是我对这个switch声明不太满意。问题是将可变数量的参数传递给使用“ new”关键字调用的构造函数是不可能的。所以,我的 Constructor 函数不能接受超过 10 个参数。例如,这将失败:

有什么办法可以解决这个问题?

0 投票
1 回答
5269 浏览

api - 如何使用 TFS API 创建新的源代码分支?

我正在尝试使用 API 创建一个新分支,并且同时使用了PendBranch()CreateBranch(). 问题CreateBranch()是它立即提交,我希望能够在签入分支时添加评论。所以,我所做的如下所示。

基本上,我从我的 Windows 应用程序中获取了所有信息,例如要映射的服务器项和本地项以及分支的源和目标。

不知何故,当我看到源代码管理资源管理器时,它仍然显示“未映射”,即使我给出了一个 :workspace.Get()在创建工作区和workspace.Map(serverItem,localItem)

任何人都可以阐明这一点吗?

0 投票
1 回答
1605 浏览

inheritance - 隐藏基属性的派生类的序列化

我有这样的课

当我尝试序列化此类时,我收到以下错误消息

类型的成员 SQLClientAdapter.Columns 隐藏类型的基类成员 Adapter.Columns ...使用 XmlElementAttribute 或 XmlAttributeAttribute 指定新名称。

建议没有奏效。

Google 建议将 Ignore() 属性添加到基类,但是我无法修改基类。

0 投票
2 回答
1167 浏览

c++ - Linux 上的运算符 new 和 bad_alloc

在 Linux 上,如果内存不足,malloc 不一定会返回空指针。如果你真的内存不足,你可能会取回一个指针,然后让 OOM 杀手开始吃进程。c++ 的运算符 new 是否也是如此,还是会得到 bad_alloc 异常?

0 投票
10 回答
5603 浏览

c++ - 调用 free() 或 delete 而不是 delete[] 有什么危险吗?

可能重复:
(POD)释放内存:delete[] 等于 delete 吗?

是否delete释放数组中第一个元素之外的元素?

在上述情况下,看到 的所有元素s都是连续分配的,不应该delete只分配数组的一部分吗?

对于更复杂的类型,是否会delete调用第一个之外的对象的析构函数?

怎么能delete[]推导出Object第一个之外的 s 的数量,这不是说它必须知道分配的内存区域的大小吗?如果出于性能原因分配的内存区域有一些悬垂怎么办?例如,可以假设并非所有分配器都提供单个字节的粒度。那么任何特定的分配都可能超过每个元素所需的大小一个或更多的整个元素。

对于原始类型,例如char, int,两者之间有什么区别:

delete除了通过->free释放机制的各个调用所采用的路由吗?