Здравствуйте, Jamais Vu, Вы писали:
JV>Хотелось бы уточнить когда же все-таки он вызывается и от чего это зависит... Это был вопрос.
Он вызывается после того, как объект перестал быть нужен (и по крайней мере до начала следующей инструкции, если на какой-либо временный объект не была заведена константная ссылка). Подробности смотри в Стандарте (12.2).
Еще надо помнить, что компилятор имеет право соптимизировать возвращение локальной переменной по значению, обойдясь без копирования.
JV>И второй вопрос по поводу перегрузки операторов.
JV>Можно ли каким-нибудь хитрым ходом сделать перегрузку псевдооператора [][] (двойной массив), которого нет, через [], который есть.
тебе нужен один оператор[], который вернет объект некоего левого класса, в котором будет храниться, например, данный х и ссылка на матрицу, а у него определить свой оператор[], который уже будет возвращать элемент.
JV>Вариант [x,y] понятен но хотелось бы чтобы сохранился вид [x][y]. Это тоже был вопрос к многоуважаемому сообществу программистов.
он, конечно, понятен, но в С++ невозможен, ибо оператор[] воспринимает только один аргумент.
Если ты хочешь писать два индекса в скобках, переопредели оператор().