Почему C и C ++ поддерживают Memberwise Assignment массивов в рамках структур, но не в целом?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему C и C ++ поддерживают Memberwise Assignment массивов в рамках структур, но не в целом?

Сообщение Anonymous »

Я понимаю, что назначение массивов Memberwise не поддерживается, так что следующее не будет работать: < /p>

Код: Выделить всё

int num1[3] = {1,2,3};
int num2[3];
num2 = num1; // "error: invalid array assignment"
< /code>
Я только что принял это как факт, считая, что целью языка является предоставление открытой структуры, и позволяет пользователю решать, как реализовать что-то, такое как копирование массива.struct myStruct { int num[3]; };
struct myStruct struct1 = {{1,2,3}};
struct myStruct struct2;
struct2 = struct1;
Array num [3] является членом, приведенным из его экземпляра в struct1 , в его экземпляр в struct2 .
Почему в отношении членов присвоение массивов, поддерживаемого для структуров, но не в целом? Комментарий в потоке std :: string in struct - copy/assing. Проблемы? Похоже, указывает в общем направлении ответа, но я не знаю достаточно, чтобы подтвердить это сам. Я выбираю Лютер Блиссетт , потому что я в основном задавался вопросом о философском или историческом обосновании, стоящем за поведением, но Джеймс Макнеллис на связанную спецификацию также была полезна.

Подробнее здесь: https://stackoverflow.com/questions/343 ... ts-but-not
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»