【问题标题】:Moving from Java to C++ and new-operator [duplicate]从 Java 迁移到 C++ 和 new-operator [重复]
【发布时间】:2014-11-26 14:06:28
【问题描述】:

来自Java,我倾向于在C++ 中一直使用new 关键字,但这不是很危险吗?我知道堆分配等等,但是在 C++ 中,new 真的有必要吗?

我想我的问题是如何在没有 new 关键字的情况下初始化对象?

class Foo {
    int bar;
}

给定这个类,这是用 new 关键字实例化它:

Foo aFoo = new Foo;

这是在没有 new 的情况下实例化 Foo 对象的正确方法吗?

Foo aFoo = Foo;

【问题讨论】:

  • 当某些东西的大小在编译时是未知的。另外,使用智能指针 (C++11)
  • 忘掉你对 Java 的了解。一切。将 C++ 视为完全不同且不相关的东西,因为你知道,它
  • 但事实并非如此。 Java 语法基于 C++ 语法,Java 旨在类似于 C++,但解决了 C++ 中一些最烦人的问题,例如指针和可移植性。我的问题现在纯粹是语法问题,只与 C++ 有关。
  • 您的实例化 Foo 对象的示例都不是有效的 C++。第一个是有效的Java。你真的需要a good C++ book
  • @MitchellCarroll:我告诉你,是的。

标签: c++ new-operator


【解决方案1】:

如果您使用 new 创建一个对象,您将能够从应用程序的每个代码中访问该对象,但如果您不删除它,它将使用内存。 您也可以不使用 new(不使用指针)创建对象,但这些对象会在超出范围时被删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2015-05-23
    • 2014-08-22
    相关资源
    最近更新 更多