Мне задали вопрос о домашнем задании, который меня действительно смущает. Возникает вопрос:
В С++ тест равенства == может быть применяется к массивам, но задание operator = не может применяться к массивы. Объясните, почему.
Это меня смущает, потому что я понимаю, что оператор ==
просто сравнивал бы адреса первых двух элементов (что, если бы два массива фактически хранились в отдельных ячейках памяти, конечно, было бы иначе). И оператор =
, когда он используется как array1 = array2;
, просто заставляет array1 указывать на то же место памяти, что и массив2.
Что мне здесь не хватает? Кажется, что любой оператор может быть использован, но ни один из них не даст результатов, обычно предназначенных для этих операторов.