为什么在 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 不支持此行为,因为它属于垃圾收集性质。
我一直在想 类名 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 不支持此行为,因为它属于垃圾收集性质。