请达人指教: Java与C++在对象数组初始化上的区别
对于对象数组, Java中似乎不允许如 A s[] = new A[10] ();
但是C++ 中则是允许如下语句: A s[] = new A[10] (); 这时候会调用默认构造函数进行初始化。
请问这是为什么呢?
------解决方案--------------------没有为什么,就是这么设计的。
但是可以反证:
Java的数组是10元素是 Reference而已。
而
C++这么写,10个元素就是对象,如果又没有执行ctor,除非用(Replacement New),某种你都没机会调用构造函数了。
------解决方案--------------------java是String[] str = new String[10];这样子啊。
------解决方案--------------------我是说C++的10个元素一定是初始化过的。至于语法,只是个设计。。。