C++版
#include <iostream>
using namespace std;
class A{
public:
A(){
cout << "A()" <<endl;
}
};
int main(){
A * arr = new A[3]; //会真正生成3个对象A, 执行了三次A()
return 0;
}
Java版
class A{
public A(){
System.out.println("A()");
}
}
public class Test {
public static void main(String [] args){
A [] objs = new A[3]; //只是生成三个引用,构造函数A()并未执行
}
}
(原因在于C++中有显式指针,可由指针运算来获得对象,而Java中没有,所以Java中要生成三个引用,即三个指针变量)
#include <iostream>
using namespace std;
class A{
public:
A(){
cout << "A()" <<endl;
}
};
int main(){
A * arr = new A[3]; //会真正生成3个对象A, 执行了三次A()
return 0;
}
Java版
class A{
public A(){
System.out.println("A()");
}
}
public class Test {
public static void main(String [] args){
A [] objs = new A[3]; //只是生成三个引用,构造函数A()并未执行
}
}
(原因在于C++中有显式指针,可由指针运算来获得对象,而Java中没有,所以Java中要生成三个引用,即三个指针变量)