FreeBasic
Главная
Вход
Регистрация
Понедельник, 30.12.2024, 19:59Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Функции в связанных списках
Billi_JoДата: Пятница, 10.02.2017, 11:12 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Offline
Здравствуйте.
Такой вопрос:
Есть класс объектов. Есть класс связанных списков (СС). В классе СС есть функция добавления объекта.
Правильно ли я понимаю, что экземпляр класса СС хранит лишь указатель на эту функцию, поэтому если я создам несколько связанных списков будет создано соответствующее число указателей, а не экземпляров функций (извините, за глупый вопрос, умом то я понимаю, что функция хранится на диске, а не в ОЗУ, но все таки хочется удостовериться).
 
haavДата: Пятница, 10.02.2017, 12:24 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Функция добавления объекта будет одна для всех объектов. То есть в каждом новом созданном объекте будет указатель на один и тот же адрес функции в памяти. А вот другие поля , например переменные, будут иметь уникальные адреса для каждого объекта. Я думаю это так smile

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
Billi_JoДата: Пятница, 10.02.2017, 13:46 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Offline
Это хорошо)

Еще вопрос, для общего развития:
Помимо указателя на функцию, будет ли в ОЗУ выделена память для хранения результата функции для 1) каждого экземпляра класса или 2) одна переменная для всех экземпляров или же 3) результат будут сохранен только в принимающую переменную (если ее нет, то память для хранения результата не выделяется)?
 
haavДата: Пятница, 10.02.2017, 15:07 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
А какая разница какой объект обращается к функции? Функция всегда возвращает результат туда , куда заложено алгоритмом компилятора. Чаще всего результат помещается в какой-либо регистр процессора, чаще в EAX (по крайней мере на 32х-битной платформе windows). То есть в данном случае сама функция является статичной единицей, которая обрабатывает какие-то данные и возвращает результат в то место, которое определено разработчиками компилятора. Программист же получает результат работы функции в свой выделенный буфер путем копирования, которое опять же осуществляется алгоритмом компилятора.

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
Billi_JoДата: Суббота, 11.02.2017, 09:46 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Offline
благодарю за разъяснения!
 
  • Страница 1 из 1
  • 1
Поиск: