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

Низкоуровневые тонкости программирования на С++ - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
KernelSource
0 / 0 / 0
Регистрация: 09.02.2012
Сообщений: 19
22.10.2012, 22:04     Низкоуровневые тонкости программирования на С++ #1
Здравствуйте. Хотел бы узнать у опытных программистов, где можно найти литературу по более продвинутым вопросам программирования с С++, т.е. таких как, выделение памяти при создании экземпляров класса, доступ к методам класса, скрытое (от разработчика) создание временных переменных в процессе выполнения, хранение в памяти динамических массивов и осуществление доступа к их ячейкам (если массив хранится в виде нескольких кусков, например) и т.п. То есть по более "низкоуровневым вопросам", связанным с работой компиляторов, менеджеров памяти и др., которые не освещены в большинстве книг по С++.

ПС. Я просто не знаю как лучше (обобщенно) назвать такого рода вопросы, чем "низкоуровневые вопросы"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2012, 22:04     Низкоуровневые тонкости программирования на С++
Посмотрите здесь:

C++ Тонкости быстрой сортировки
C++ Тонкости работы ползунков
C++ Начало программирования
C++ Прошу пояснить тонкости данного кода
Тонкости кода: wchar_t* FilterFiles = L"cool"; C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
23.10.2012, 20:23     Низкоуровневые тонкости программирования на С++ #21
Цитата Сообщение от KernelSource Посмотреть сообщение
По нему не пробежишься, инкрементируя указатель
В С++ как раз пробежишься. Там по ссылке речь про делфи (которого я не знаю), но если там так, как ты говоришь, значит там массив - это что-то типа класса, а в С++ массив это просто кусок памяти от А до В.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
23.10.2012, 20:26     Низкоуровневые тонкости программирования на С++ #22
Цитата Сообщение от KernelSource Посмотреть сообщение
Динамический массив, в отличие от статического, не обязан быть непрерывным блоком данных,
Цитата Сообщение от KernelSource Посмотреть сообщение
Я бы рад, но ассемблер хромает.
У Вас не только ассемблер хромает.

Добавлено через 1 минуту
Kastaneda, да нет, быстро глянул, там тоже самое, даже процитирую:
До Delphi 4 в языке не было динамических массивов, но они существовали как концепция. Динамический массив - это блок выделенной памяти, которая управляется через указатель. Динамические массивы могут расти или уменьшаться. Фактически это означает, что выделяется новый блок памяти для массива новой длины, в то время как старая память ещё не отпускается. После чего содержимое старой памяти копируется в новую, и старый блок памяти в конце удаляется, а указатель (ссылка) массива начинает указывать на новый блок памяти.
KernelSource
0 / 0 / 0
Регистрация: 09.02.2012
Сообщений: 19
23.10.2012, 20:58  [ТС]     Низкоуровневые тонкости программирования на С++ #23
Цитата Сообщение от Toshkarik Посмотреть сообщение
Kastaneda, да нет, быстро глянул, там тоже самое, даже процитирую:
До Delphi 4 в языке не было динамических массивов, но они существовали как концепция. Динамический массив - это блок выделенной памяти, которая управляется через указатель. Динамические массивы могут расти или уменьшаться. Фактически это означает, что выделяется новый блок памяти для массива новой длины, в то время как старая память ещё не отпускается. После чего содержимое старой памяти копируется в новую, и старый блок памяти в конце удаляется, а указатель (ссылка) массива начинает указывать на новый блок памяти.
Там же:
Но динамические массивы также могут быть и многомерными. Ну, по-крайней мере, с точки зрения синтаксиса, т.к. в действительности они ими не являются. Многомерный динамический массив является, фактически, одномерным динамическим массивом, в котором каждый элемент является ссылкой на другой одномерный динамический массив.

А на счет одномерных динамических массивов (в дельфи) я кажется ступил. Я реально считал что в они могут быть в о фрагментированном виде(физически, в выделенной памяти) и доступ по инкременту указателя(как в случае со статическими массивами) для них невозможен. не могу найти где я это прочитал (недавно).

Цитата Сообщение от Toshkarik Посмотреть сообщение
У Вас не только ассемблер хромает.
судя по всему...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 06:08     Низкоуровневые тонкости программирования на С++
Еще ссылки по теме:

Как называется движение программирования или теория программы считывающая др. язык программирования C++
Низкоуровневые функции работы с файлами C++
C++ Тонкости типов данных

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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.10.2012, 06:08     Низкоуровневые тонкости программирования на С++ #24
Цитата Сообщение от KernelSource Посмотреть сообщение
т.к. в действительности они ими не являются
Пространство оперативной памяти - одномерно. Поэтому реально многомерных массивов (в геометрическом смысле) в ней быть не может. Кроме того, нормальные люди не в состоянии геометрически представить пространства, числом более трёх.

Цитата Сообщение от KernelSource Посмотреть сообщение
в котором каждый элемент является ссылкой на другой одномерный динамический массив.
Указателем, а не ссылкой. В остальном всё верно. Создание таких массивов рассматривается в любой книжке для чайников, т.к. это базовый уровень знаний языка программирования.
Yandex
Объявления
24.10.2012, 06:08     Низкоуровневые тонкости программирования на С++
Ответ Создать тему
Опции темы

Текущее время: 08:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru