Сообщение от
Ra$cal
в твоем случае это int*, ибо проще при вызове для таких мест сделать *value.
Тут немного не понял что ты имеешь ввиду
Сообщение от
Ra$cal
DATA* Find(int* node_num)const;//Искать узел с заданным номером
этот метод убрать под private.
Это да, я просто в конце доделал другой поиск с показом а про этот забыл
Сообщение от
Ra$cal
и старайся не делать методов с int* параметрами
ммм, а указатель разве не меньше памяти требует, если он только передает в другой метод адрес, вместо создания нового инта?
Сообщение от
razb
При передачи параметров по значению они копируются в стек, в случае с встроенными типами это не так уж критично, указатели стоит использовать при передачи данных больших обьемов (массивы, обьекты (хотя тут лучше ссылки) и т.д.), необходимости возвратить больше одного значения из ф-ции.
Убрал все int* параметры, и оставил их простыми интами.
Сообщение от
Ra$cal
если не переопределишь - по умолчанию конструктор просто копирует поля
Я обычно для проверки делаю так:
Код:
DATA(DATA&) { cout << "copy constructor...\n"; }
Таким образом проверяю, не вызывается ли конструктор копировщик. Когда его вижу - значит переделываю то что вызывает его. На этот раз не видел, потому и думал что все в порядке. А где именно он вызывается?
Я ж вроде везде только адреса передаю и присваиваю их указателям и контролирую чтоб не удалилось значение. А методы, в которых я использую - не возвращают ничего, за исключением возврата тех же указателей на предидущие и следующие узлы и поиска, который так же указатель возвращает...
Сообщение от
Ra$cal
старайся меньше юзать указателей. это не самая сильная сторона с++ =)
Мне просто помнятся слова нашего препода, что если освоить работу с указателями и списками - дальше проблем не будет и что указатели - одно из мощнейших средств с++) Потому и юзал их)
З.Ы. нужно в подписи фразу "Ra$cal, спасибо большое еще раз" вставить
