crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

daorus
  опции профиля:
сообщение 4.11.2010, 14:22
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 30.10.2010
Пользователь №: 2163

Спасибо сказали: 0 раз(а)




Репутация:   0  


Захотелось мне любопытному B) узнать, сколько байтов добавляет к классу операция наследования от QObject, но может я что-то не так делаю? Подскажите в чем ошибка-то?

// параметры моей тачки
qDebug() << sizeof(int); // == 4
//
//
class e { public: e(){} };
e ept;
qDebug() << sizeof(ept); // == 1
//
//
class ine { public: ine(){ int a = 5; } };
ine inept;
qDebug() << sizeof(inept); // == 1
//
// #1. что происходит с int a в inept, когда я создаю два экземпляра ine?
//     почему функции не учитываются в sizeof?
//     они что - подобно *.dll'кам, т.е. носят share-характер вне зависимости от кол-ва экземпляров?
//     или просто конструкторы не могут быть inline'овыми?
//
// #2. существует ли какой-то дешевый способ подсчитать
//     стековую стоимость объекта вместе с его функциями   
//     или из-за возможности рекурсивных вызовов
//     получается калейдоскоп, не поддающийся подсчёту?
//     может тогда как-то можно подсчитать стоимость одной функции?
//
//
class eg { public: eg(){ a = 5; }; int a; };
eg egpt;
qDebug() << sizeof(egpt); // == 4
//
// #3. почему egpt == 4, а не egpt == 5, если ept == 1
//
//
class eo : public QObject
{
    Q_OBJECT
public:
    eo() { }
};
eo eopt;
qDebug() << sizeof(eopt); // == 8
//
// #4. неужели сделать потомком QObject'a какой-то класс стоит всего 8 байт?
//     при его навороченной-то функциональности, когда он даже имена типов хранит?
//     чё-то не верится...
//     а как тогда измерить реальную цену наследования от QObject'a?
//
//

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- daorus   Размер объекта - наследника QObject   4.11.2010, 14:22
- - Алексей1153   daorus, пустой класс имеет размер 1 байт. Это каки...   4.11.2010, 14:48
|- - BRE   Цитата(Алексей1153 @ 4.11.2010, 14:48) ук...   4.11.2010, 14:52
|- - Влад   Цитата(Алексей1153 @ 4.11.2010, 14:48) da...   7.11.2010, 17:25
- - Алексей1153   BRE, ну так то да. Я для 32-битной системы сказал ...   4.11.2010, 15:06
- - daorus   Цитата(Алексей1153 @ 4.11.2010, 16:48) ук...   4.11.2010, 16:13
- - Алексей1153   daorus, дык, я ж размер не замерял - я пример прив...   4.11.2010, 16:24
- - daorus   Цитата(Алексей1153 @ 4.11.2010, 18:23) То...   4.11.2010, 16:27
- - Алексей1153   daorus, ну не знаю, мне ещё ни разу не пришлось на...   4.11.2010, 16:35
- - daorus   Цитата(Алексей1153 @ 4.11.2010, 18:35) 28...   4.11.2010, 21:38
- - Алексей1153   daorus, функции располагаются в сегменте кода - и ...   4.11.2010, 23:45
- - daorus   Цитата(Алексей1153 @ 5.11.2010, 1:45) фун...   5.11.2010, 11:55
- - Litkevich Yuriy   Цитата(daorus @ 5.11.2010, 14:55) Ну, Лёх...   5.11.2010, 13:19
- - Алексей1153   сам в шоке до сих пор   5.11.2010, 13:42
- - Алексей1153   Влад, понятно   7.11.2010, 18:00
- - kwisp   Цитата(daorus @ 4.11.2010, 14:22) #1. что...   9.11.2010, 10:52


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 28.5.2025, 20:32