Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
FarStar
Заблокирован
#1

Раннее и позднее связывание - C++

12.04.2013, 00:01. Просмотров 1127. Ответов 2
Метки нет (Все метки)

Вот компилятор статическую функцию как бы компилирует ранним связыванием, а динамическую - поздним.
Во многих учебниках говорят, что если есть функция раннего связывания, то её адрес в памяти известен на этапе компиляции. Я чё то не могу понять, как может быть известен адрес функции на этапе компиляции. Нет, конечно понятно, что Ahead компиляторы сразу преобразуют исходный код в машинный код данной платформы, но как может быть известен заранее адрес функции? Тоесть грубо говоря, я компилирую статическую функцию, компилятор типа сразу присваивает её адрес памяти, тоесть он как бы уже в бинарнике вшит, потом я докупаю оперативки на своё комп + пару новых хардов или ещё чего, запускаю свою программу из exe бинарного файла, в котором так сказать адрес функции моей уже известен и выходит, что на моей машине то адреса памяти уже изминились и этот адрес моей функции уже занять Такое может быть или чё то я не догоняю? Или имеется ввиду, когда говорят про то, то адрес известен на этапе компиляции, что он известен как бы относительно, тоесть известно, что вся программа занимает столько то заранее известного места и этот блок памяти располагается уже в свободной оперативке, а там уже, относительно как бы стартового адреса блока в оперативке уже вычисляется так сказать мой заранее известный адрес? ?????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2013, 00:01     Раннее и позднее связывание
Посмотрите здесь:

Позднее и раннее связывание - C++
у меня проблема не могу разобратся с этим "приведите пример (без реализации методов) познего и раннего связывание" завтро здавать а мыслей...

Почему не работает позднее связывание - C++
Здравствуйте. В приведенном коде есть класс-шаблон А, и его наследники (классы B,C,D). В main создаю масcив указателей на базовый шаблонный...

Проверить, содержится ли последнее введенное число среди введенных раннее элементов массива - C++
Разработайте программу, которая будет вводить с клавиатуры 25 действительных чисел и хранить их в некотором одномерном массиве. затем в ...

Как использовать класс, определенный позднее? - C++
как заюзать класс определенный позднее, пробую так: #include <iostream> using namespace std; class B; class A{ B...

Найти в массиве сведений о компьютерах такой, который был выпущен позднее других - C++
Помогите :Сведения о компьютерах хранятся в массиве. Компьютер характеризуется процессором, его тактовой частотой, объемом оперативной...

Записать в другой файл только строки, которые относятся к родившимся позднее 1980 года - C++
Создать в редакторе текстовый файл с записями следующего вида: Иванов Петр Сергеевич 1975 Сидоров Николай Андреевич 1981 Воробьянинов...

Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B - C++
Даны векторы A, B, C, у каждого из которых есть хотя бы одна отрицатель- ная компонента. Символьной переменной L присвоить значение true,...

Связывание классов - C++
Всем привет. Подскажите, пожалуйста, как решить вот такую проблему: У меня есть класс connections который хранит в себе все активные...

Связывание библиотек - C++
Допустим есть решение из 4 проектов- Common, A , B и Program. Common содержит некие общие классы и интерфейсы ( например работа с...

связывание 2-х классов - C++
среда Embercadero RAD Studio 2010 столкнулся с проблемой: есть 2 класса например #ifndef Class1H #define Class1H

Связывание файлов - C++
Здравствуйте, помогите пожалуйста решить вопрос. Была программа, содержащая класс. Хочу сделать так, чтобы класс был в отдельном файле....

Связывание классов в 1 файле - C++
Здравствуйте! Разрабатывая программу столкнулся с проблемой... в 1 файле разместил несколько классов которые нужно между собой связать......


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
12.04.2013, 02:57     Раннее и позднее связывание #2
Не путайте теплое с мягким.

Раннее и позднее связывание и статическое и динамическое связывание - это разные и независимые вещи.

1. Раннее и позднее связывание

При раннем связывании на этапе компиляции решается, какой код будет отвечать указанному методу.
При позднем - решение откладывается до момента фактического вызова (полиморфизм).

Например, при покупке авиабилета с "ранним связыванием" у вас указаны рейс и место, а при "позднем" - только название авиакомпании и дата вылета.

2. Статическое и динамическое связывание

Это чисто технический вопрос для OS.

Представьте себе директорский телефон с тремя кнопками:

#1. Иванов
#2. Петров
#3. Сидоров

При этом Иванов сидит в соседней комнате, Петров - где-то в Гондурасе, а Сидоров вообще в роуминге.

Иванова техники свяжут с директором статически, а Петрова и Сидорова - динамически. При этом, пока связь с Гондурасом не нарушится и пока у Сидорова не кончатся деньги на счету, директор может вообше не задумываться о том где - кто и вызывать любого из них нажатием подходящей кнопки.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
12.04.2013, 03:19     Раннее и позднее связывание #3
Цитата Сообщение от FarStar Посмотреть сообщение
Или имеется ввиду, когда говорят про то, то адрес известен на этапе компиляции, что он известен как бы относительно, тоесть известно, что вся программа занимает столько то заранее известного места и этот блок памяти располагается уже в свободной оперативке, а там уже, относительно как бы стартового адреса блока в оперативке уже вычисляется так сказать мой заранее известный адрес? ?????
Да. Вот так. Дальше идите читайте про виртуальную память.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru