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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Svinina
5 / 5 / 0
Регистрация: 28.11.2010
Сообщений: 81
#1

Организация памяти. - C++

05.11.2011, 23:32. Просмотров 2157. Ответов 6
Метки нет (Все метки)

Здравствуйте. Объясните, пожалуйста, вот что:
Допустим есть класс, с определенным количеством полей и определенным набором методов. При создании нескольких экземпляров этого класса, как будет храниться код его методов? Будут создаваться его копии, или он будет храниться в памяти в единственном экземпляре?

И вообще, меня интересует, как хранится программа в памяти. Где хранится код, где хранятся данные, что происходит при динамическом распределении памяти, чем оно отличается от статического и т. д. В книгах по С++ цельного структурированного ответа на эти вопросы пока найти не могу. Понимаю, что вопрос очень общий, и в рамках форума на него не ответить, поэтому, посоветуйте, пожалуйста, статьи, в которых это описано.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2011, 23:32     Организация памяти.
Посмотрите здесь:

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

Организация памяти для текстового редактора - C++
/* * Реверанс для модераторов: Я самостоятельно скопировал эту тему из раздела "Алгоритмы" (хотя сам её и создал там) нарушая правила,...

Организация меню - C++
Само задание сделал, но не могу понять, как делать менюшку _________________________________________ Описать структуру с именем ORDER,...

Организация циклов в С - C++
Составить программу в С: 1. Составить программу, проверяющую, является ли заданное натуральное число совершенным, то есть равным сумме...

Организация программы - C++
Здравствуйте уважаемые программисты! Есть такая задача: Используйте одномерный массив для решения задачи. Компания платит своим...

Организация функции - C++
Подскажите как можно, и можно ли вообще перевести данный код в 2 функции и вызывать их по такому принципу : while(TRUE) { if...

Организация наследования - C++
Здраствуйте! У меня есть несколько классов: class Base { public: int baseGet() { return i; } void...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
05.11.2011, 23:39     Организация памяти. #2
Цитата Сообщение от Svinina Посмотреть сообщение
Будут создаваться его копии
Нет
Цитата Сообщение от Svinina Посмотреть сообщение
он будет храниться в памяти в единственном экземпляре?
Да

Не по теме:

ровно пять букв

Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
05.11.2011, 23:44     Организация памяти. #3
Объект( экземпляр ) класса содержит в себе только не статические поля.
Svinina
5 / 5 / 0
Регистрация: 28.11.2010
Сообщений: 81
06.11.2011, 00:00  [ТС]     Организация памяти. #4
А где тогда хранятся методы?
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
06.11.2011, 00:03     Организация памяти. #5
Цитата Сообщение от Svinina Посмотреть сообщение
А где тогда хранятся методы?
Там же, где и обычные функции.
Функции\методы хранятся в коде программы. А объекты, создаваемые во время выполнения программы хранятся в памяти, отведенной при запуске программы.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
06.11.2011, 07:32     Организация памяти. #6
На самом деле, полный ответ на этот вопрос никто дать не сможет, т.к. "состав" объекта не стандартизирован и реализуется по желанию разработчиков компилятора. Т.е. о количестве и порядке следования полей ещё можно говорить с почти 100% уверенностью, а вот о служебных данных уверенности уже быть не может. Т.е. при использовании (множественного) наследования, с некоторой долей уверенности можно говорить только о положении полей первого базового класса.

А в остальном, как уже и сказали, код один на всех, не статические данные создаются для каждого объекта свои.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2011, 10:23     Организация памяти.
Еще ссылки по теме:

Организация проекта на C++ - C++
Как правильно организовать большой проект? Незная этого я создал так: stdafx.h включает в себя все заголовки один из включаемых...

Организация программы. - C++
Здравствуйте. Как организовать программу? Дана матрица с ней производится ряд операций. После этих операций матрица проверяется на...

Организация Меню в С++ - C++
Привет!!!!!!!!!! Народ подскажите как создать меню в С++ в консольном приложении???

Организация циклов в C++ - C++
Не могу никак справиться с этим заданием: Дано натуральное число N: опредилить наименьшую цифру с чётным номером Оч нужна помощь....

Организация исходников - C++
Не нашел в гугле толковый инфы. Вот есть у меня допустим два класса, нейрон и перцептрон. Описал я их в .h. Реализовал в .cpp одном. Но...


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

Или воспользуйтесь поиском по форуму:
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
06.11.2011, 10:23     Организация памяти. #7
Цитата Сообщение от Svinina Посмотреть сообщение
При создании нескольких экземпляров этого класса, как будет храниться код его методов? Будут создаваться его копии, или он будет храниться в памяти в единственном экземпляре?
К всему вышесказанному добавлю. Методы хранятся в единственном экземпляре, при этом первым параметром в метод незаметно передается указатель на начало памяти, выделенной под объект, т.е. this. Таким образом методы работают с данными конкретного объекта, и за все это отвечает компилятор.
Yandex
Объявления
06.11.2011, 10:23     Организация памяти.
Ответ Создать тему
Опции темы

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