日期:2014-05-20  浏览次数:20722 次

请达人指教: 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个元素一定是初始化过的。至于语法,只是个设计。。。