Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где хранится описание типа (класса)? тип обьекта при дин. создании 
V
    Опции темы
GSasha
Дата 12.9.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 23.3.2008
Где: Ukraine

Репутация: нет
Всего: нет



Приветствую, товарищи программисты!
Как программа узнает тип обьекта при динамическом создании! Где храниться сам класс (или структура) после компиляции!?
Не обьект класса, а сам класс! Насчет методов, то понятно что все проходит через this. Но остальное же описание класса где-то же должно находится!?
Спасибо!
PM MAIL ICQ   Вверх
Mayk
Дата 12.9.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(GSasha @  12.9.2008,  19:55 Найти цитируемый пост)

Как программа узнает тип обьекта при динамическом создании

нет в c++ никакого динамического создания. в момент создания тип класса всегда известен. hint: если делаем new HelloWorld(), то тип класса - HelloWorld. 
Цитата(GSasha @  12.9.2008,  19:55 Найти цитируемый пост)
Где храниться сам класс (или структура) после компиляции!?
Не обьект класса, а сам класс

rtti в c++ хоть и есть, но он в многих компиляторах опционален. так что возможно что и нигде. 
Да и сам rtti в с++ такой, что можно считать что его и нет  smile 

Цитата(GSasha @  12.9.2008,  19:55 Найти цитируемый пост)
Но остальное же описание класса где-то же должно находится!?

Нет. Зачем?

Добавлено через 1 минуту
а ещё лучше возьми включи генерацию ассемблерного листинга, и изучай. 


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Любитель
Дата 12.9.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(GSasha @  12.9.2008,  15:55 Найти цитируемый пост)
Но остальное же описание класса где-то же должно находится

Если речь про поля - их "описание" не храниться. А данные - это ж и есть объект smile


--------------------
PM MAIL ICQ Skype   Вверх
GSasha
Дата 12.9.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 23.3.2008
Где: Ukraine

Репутация: нет
Всего: нет



Хорошо. Значит я чего то недопонял!
Тогда раскажите мне плиз процес создания обьекта динамически! Есть напр
 
Код

class HelloWorld
{
    public:
    int a;
    int b;

    GetAB(){return a + b;}
};
.......
    HelloWorld *p = new HelloWorld();
        p->a = 150;
.......


в екзешнике где-то есть описание типа HelloWorld или как указатель будет уметь правильно общаться с обьектом?

Это сообщение отредактировал(а) GSasha - 12.9.2008, 16:21
PM MAIL ICQ   Вверх
Daevaorn
Дата 12.9.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(GSasha @  12.9.2008,  17:17 Найти цитируемый пост)
в екзешнике где-то есть описание типа HelloWorld или как указатель будет уметь правильно общаться с обьектом?

Описание доступно компилятору в момент компиляции, а этого достаточно. Он генерирует правильные инструкции для работы с данным классом.
PM MAIL WWW   Вверх
GSasha
Дата 12.9.2008, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 23.3.2008
Где: Ukraine

Репутация: нет
Всего: нет



Ну наверное все понятно! Спасибо всем за обьяснение!
PM MAIL ICQ   Вверх
Любитель
Дата 12.9.2008, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(GSasha @  12.9.2008,  16:17 Найти цитируемый пост)
в екзешнике где-то есть описание типа HelloWorld или как указатель будет уметь правильно общаться с обьектом?

Если речь про виртуальные функции - то реально хранится таблица виртуальных методов, а в объекте спецполе - указатель на нужную таблицу.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0775 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.