fshp: здравствуйте ещё раз. Отвечу сразу на два комментария.
Да, в плюсах я ещё новичок. Да, читаю, но читать много, а ответ, как всегда, хочется узнать "прямо вот сейчас".
Решение нашлось (о, неожиданность!:D) в учебнике. В итоге оказалось, что в разных ситуациях используются разный функционал (например, когда наш класс - поле другого класса без подобных перегрузок, то вызывается "operator=").
До сих пор нахожусь в полнейшей прострации из-за подобных... не вполне изящных решений разработчиков языка.
List(const List<T>& other) {
println("Copy constructor called");
first = NULL;
last = NULL;
for (Item* cur = other.first; cur != NULL; cur = cur->getNext()) {
pushBack(*cur->getData());
}
}
не дало ровным счётом ничего. Он всё так же игнорируется.
Прошу простить за подобную профанацию. Амперсанд в сигнатуре появился потому, что без него конструктор копирования просто игнорировался и происходило побитовое копирование.
Понятно, спасибо. Отмечаю как ответ:3
Существует ли способ уничтожить объект корректно перед таким копированием?
Имеется ввиду выполнение деструктора (закрытие файлов, подключений и пр.).
bagerman: Да. По поводу заполнения: Скорее всего, составляется какое-то правило, либо генерируется код, которые и заполняют элемент в случае изменения модели.
https://nodejs.org/api/stream.html#stream_readable...
Читаем ту часть текста, где написано, что метод
readable.pipe(destination[, options])
Цитирую
This function returns the destination stream, so you can set up pipe chains like so:
r.pipe(z).pipe(w);