问题标签 [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 回答
666 浏览

sql-server - 在管理工作室中打开一个新的查询窗口,其中包含准备好的“select * from”文本

我将 SQLFile.SQL 编辑为“select * from”,以便在创建新查询时拥有一个新模板。但似乎我仍然有一个空白窗口....

什么问题 ?

0 投票
8 回答
4612 浏览

c++ - C++中的内存分配

是否可以使用“new”运算符分配任意内存块?在 CI 中可以像“void * p = malloc(7);”那样做 - 如果内存对齐设置为 1 个字节,这将分配 7 个字节。如何在 C++ 中使用 new 操作符做同样的事情?

0 投票
10 回答
720 浏览

c++ - 我如何能够在 C++ 中声明一个在运行时确定的可变长度的数组?

请检查此代码,它可以编译并运行得很好。问题是,当我开始学习 c++(turbo c++)时,我从来没有能够将任何类型的数组声明为 ..

我理所当然地认为这在最新的 gcc 编译器中是不可能的……但令人惊讶的是,这是可能的……

所以我的相关问题是新运营商的需求是什么?

我知道 new 运算符做了很多事情,包括在运行时在堆中动态分配内存,将地址返回到该资源......等等。

我觉得有什么区别是我的代码在堆栈上动态分配内存,而 new 在堆上分配内存?这是唯一的区别吗...

写了这样的东西后我真的很惊讶,因为当我开始学习 c++ 时我无法做到这一点,并且......添加到它我也可以为自定义数据类型做到这一点...... :-O

请阐明一些光..

谢谢。

0 投票
6 回答
71677 浏览

c++ - C++ new int[0]——它会分配内存吗?

一个简单的测试应用程序:

输出:

所以看起来它有效。标准对此有何评论?“分配”空的内存块总是合法的吗?

0 投票
6 回答
886 浏览

c++ - C++ 运算符 new、对象版本和分配大小

我有一个关于对象的不同版本、它们的大小和分配的问题。该平台是 Solaris 8(及更高版本)。

假设我们有程序 A、B 和 C,它们都链接到共享库 D。在库 D 中定义了一些类,我们称其为“classD”,并假设大小为 100 字节。现在,我们想为下一个版本的程序 A 向 classD 添加一些成员,而不影响现有的二进制文件 B 或 C。新的大小将是 120 字节。我们希望程序 A 使用 D 类的新定义(120 字节),而程序 B 和 C 继续使用 D 类的旧定义(100 字节)。A、B 和 C 都使用运算符“new”来创建 D 的实例。

问题是,运算符“new”什么时候知道要分配的内存量?编译时还是运行时?我害怕的一件事是,程序 B 和 C 期望 classD 分配 100 个字节,而新的共享库 D 需要 120 个字节用于 classD,如果我将它们与新库 D。换句话说,新类 D 需要的额外 20 个字节的区域可能会被程序 B 和 C 分配给其他一些变量。这个假设是否正确?

谢谢你的帮助。

0 投票
2 回答
67 浏览

oop - 基于什么逻辑原因,virtual 和 new 修饰符在继承和多态问题上有不同的结果?

我知道,当我们在自己的基类中有一个虚函数,然后通过在派生类中重写它并在变量声明时考虑强制转换,与在派生类中使用 new 修饰符相比,我们有不同的结果。但为什么?是否有任何合乎逻辑的理由,或者我们必须毫无理由地学习它?

0 投票
3 回答
532 浏览

c# - 新(修饰符)功能的实际用法?

新(修饰符)函数的实际用法是什么?

0 投票
9 回答
1384 浏览

java - 我们应该在java中断言每个对象的创建吗?

听起来像一个答案很明显的愚蠢问题:)

仍然我冒险问只是加倍确定。

我们确实在使用下面给出的断言

问题是在断言上制作一个小而简单的文档是很困难的。有很多关于断言的书籍,但理想情况下,我想为新程序员提供关于使用断言之类的东西的非常简单的指南。顺便说一句,像 pmd 这样的工具会检查断言的正确使用吗?

提前致谢。

0 投票
4 回答
341 浏览

c++ - 我是否正确使用新运算符?

我有以下指针。

x is 将指向一个指针数组。那么下面的代码正确吗?

我们将使用

相等的?

0 投票
10 回答
18630 浏览

c++ - 调用析构函数,然后调用构造函数(重置对象)

我想重置一个对象。我可以通过以下方式进行吗?

这段代码显然是由 inplace new 分配的对象的典型生命周期的子集:

唯一改变的是构造函数和析构函数调用的顺序。

那么,为什么在下面的常见问题解答 中出现了所有的威胁?

[11.9] 但是,如果我用 new 分配了我的对象,我可以显式调用析构函数吗?

常见问题解答:您不能,除非该对象是使用新位置分配的。new 创建的对象必须被删除,它做了两件事(记住它们):调用析构函数,然后释放内存。

FQA:翻译:delete 是一种显式调用析构函数的方法,但它也会释放内存。您也可以在不释放内存的情况下调用析构函数。在大多数情况下它是丑陋和无用的,但你可以这样做。

析构函数/构造函数调用显然是普通的 C++ 代码。代码中使用的保证直接来自放置新的保证。它是标准的核心,坚如磐石。怎么能被称为“肮脏”并被呈现为不可靠的东西?

您认为 new 的就地实施和非就地实施有可能不同吗?我正在考虑一些病态的可能性,例如常规 new 可以将分配的内存块的大小放在块之前,而就地 new 显然不会这样做(因为它不分配任何内存)。这可能会导致一些问题的空白......这样的 new() 实现可能吗?