После recent question on static typing, я снова думал о массивах. Я всегда думал, что элементы массива являются просто обычными объектами, но теперь мне интересно:Являются ли элементы массива незавершенными?
Являются ли элементы массива полными объектами сами по себе или являются неполными, а единственным полным объектом является сам массив?
Если это так, то каков полный объект (new T[N])[0]
, и каков его тип?
Если элемент неполный, значит ли это, что есть объекты, тип которых не может быть известен статически? (Это отличается от базового/полученного бизнеса: тип new Derived
является известно статически, хотя он никогда не может быть записана вне этого выражения.)
Что вы подразумеваете под «полным объектом». Моя личная интерпретация слова «объект» - это «блок памяти». Массив будет иметь N кусков памяти, равный sizeof (T). тип элемента массива «Т», вероятно, является реализацией реализации компилятора, но достаточно было бы сказать, что это эффективно «Т», но будет действовать как Т &. – Pete
Я предполагаю, что Ангел объясняет, что в его ответе есть полный объект. – Pete
@Pete: Термин «полный объект» определен на языке. –