为什么在 java 中需要 new 运算符而在 C++ 中不需要

Why need new operator in java but not in c++

我一直在想 类名 ob; 可以在c++中创建一个对象 为什么需要需要 类名 ob=新类名(); 在java

C++ 和 Java 具有相似的语法,但并不总是相同。

在 Java 中,所有对象都是引用,因此当您执行 Classname obj; 时,您正在创建一个对象的空引用,因此您需要为其分配一些内容。

Classname obj;
//here obj is pointing to nothing.

obj = new Classname();
//here obj is pointing to a new Classname object

可以在 C++ 中使用指针完成相同的行为

Classname* obj;
//here obj is pointing to nothing.

obj = new Classname();
//here obj is pointing to a new Classname object

现在,C++ 中的 Classname obj; 非常不同。它在堆栈中创建对象,简单来说,对象的行为类似于基本类型(int、bool、float 等)。 Java 不支持此行为,因为它属于垃圾收集性质。