| 15.07.2010, 05:53 | |
|
Ответы с готовыми решениями:
1272
Элементарные программы, для лучшего понимания языка...
Литература для лучшего понимания сути программирования |
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||||||||||
| 23.07.2010, 01:20 | |||||||||||
|
Lavroff, neske, хе-хе... а ведь в задачке rangerx, тоже всё банально просто.
Нужно просто рассмотреть эту строчку:
А вот "http:" рассматривается как обычная метка. ![]() Для лучшего понимания простенький пример:
5
|
|||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 23.07.2010, 01:22 [ТС] | |
|
MikeSoft, Ух как. Про метки не знал. Спасибо. Может задачку подкините заодно какую-нибудь?)
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|||||||
| 23.07.2010, 01:33 | |||||||
0
|
|||||||
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||||||
| 23.07.2010, 01:46 | |||||||
![]()
Попробуйте посмотреть на задачку и сказать, что в ней неправильно. Компилятор, думаю, вам не поможет...
0
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 23.07.2010, 02:03 [ТС] | ||||||
|
Не знаю... Но вот что нашел...
Если совсем не то - скажите, но ответ не говорите... Еще тогда подумать попробую...
0
|
||||||
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||
| 23.07.2010, 02:22 | ||
|
Но ответ неверный.
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 23.07.2010, 02:29 [ТС] | |
|
Нет... Не могу найти ошибку... Синтаксически вроде все правильно... В функции создаем указатель на объект класса Test, выделяем под него память операцией new, используя конструктор с параметрами типа int Test(5). Получаем размер - и печатаем его...
В мейне создаем ссылку на объект класса Test и вызываем для него функцию TestObject... В итоге получаем в поле Size объекта rTestObject значение 5...Выводим значение на экран... Чистим память... Можно ответ? Если хотите, чтобы кто-нибудь еще порешал ответ можно в лс...
0
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||
| 23.07.2010, 02:35 | ||
|
Если я вам сейчас скажу ответ, вы его забудете через N дней. А вот если сами попробуете разобраться - то запомните на более длинный промежуток, если не навсегда. Я попробую чуть натолкнуть на мысль. Прокомментируйте ещё раз действия, которые выполняются в функции main. Особенно меня интересуют строки 26, 30, 31.
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 23.07.2010, 02:47 [ТС] | |
|
MikeSoft, Мы объявляем ссылку на объект класса Test инициализируя ее тем, что возвращает ссылка на функцию TestObject, которая возвращает указатель на объект класса Test...
Затем мы присваиваем указателю на объект Test значение ссылки на другой объект Test. Затем удаляем указатель на Test, точнее очищаем память... Память так же очищается и в другом объекте. А это нормально что у указателя возвращаемого функцией и ссылки которую мы создали в мейн один и тот же адрес?
0
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||
| 23.07.2010, 02:53 | |||
|
Все действия выполняются только на одном объекте. Выполняя присвоение указателю вы даже не вызываете конструктор копирования.
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 23.07.2010, 03:18 [ТС] | ||||||
|
MikeSoft, нет... видать я плохо занимался и занимаюсь. никаких мыслей. Мы ведь не делаем ничего против стандарта... Или делаем?
Добавлено через 8 минут А не логичнее ли так?
0
|
||||||
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||
| 23.07.2010, 03:34 | |||
|
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 23.07.2010, 03:42 [ТС] | |
|
MikeSoft, Пас. Смотреть сегодня уже не могу. ВС пищит сильно, если что не так. А на дворе ночь. Спать мешаю.
В чем все же ошибка?
0
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 23.07.2010, 03:51 | |
|
Пусть задача пока что останется для обсуждения.
Если нужно будет, ответ я озвучу здесь. А пока что, он у вас в ЛС.
1
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 23.07.2010, 04:05 [ТС] | |
|
MikeSoft, Прекрасная задача, спасибо! Еще дадите что-нибудь?)
0
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||||||
| 23.07.2010, 04:23 | ||||||
|
Lavroff, а как на счёт почти идентичной задачи?
Опять тот же класс, те же ссылки... Но функция создаёт обьект класса:
0
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 23.07.2010, 04:39 [ТС] | ||||||
Хотя даже не совсем так... Возвращает то он верно, но после вызова функции GetSize в size попадает то-ли мусор, то-ли адрес объекта в памяти. Скорее второе.
0
|
||||||
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 23.07.2010, 04:43 | |
|
Lavroff,
всё там в рамках цензуры. Компиляторы фирмы Microsoft выполнят эту программу с одним предупреждением (чем оно вызвано?). А вот компилятор от Borland или Embarcadero откажутся выполнять. В чём же загвоздка?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 23.07.2010, 04:49 [ТС] | |
|
MikeSoft, В том что из функции возвращается адрес локальной или временной переменной.
Дык нехорошо адрес то возвращать. Как-то неправильно что-ли) Значение Size после вызова функции из мейн: 1244788. А в ссылке содержится адрес временного элемента... не?
0
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 23.07.2010, 04:57 | |
|
Lavroff, в теле ф-ции TestObject() объявляется локальный объект и инициализируется Size. Затем этот объект возвращается по ссылке.
По возвращению функции TestObject() локальный объект pTestObject будет разрушен. Возвращаемая ссылка же останется псевдонимом для несуществующего объекта. Вот она, ошибка.
2
|
|
| 23.07.2010, 04:57 | |
|
Набор задачь для тренировки и улучшения понимания программирования Проверить на правильность и закомментировать весь код для лучшего понимания Нужны задачи для тренировки
Нужны задачи для тренировки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|