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

Как определить размер класса ? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Jugger
0 / 0 / 0
Регистрация: 03.09.2008
Сообщений: 35
13.03.2011, 17:20     Как определить размер класса ? #1
Вот есть у меня класс, каким образом определить его размер в битах ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
13.03.2011, 18:46     Как определить размер класса ? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/////////////////////////////////////////////////////////////////////////////////////////
#include <complex>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
class T_class
{
    int       a[100]; 
    double    b;    
};
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
void  print_class_size(const T&  t)
{
    std::cout << "Размер объекта "    
              << typeid(t).name()
              << " составляет "
              << sizeof(t)
              << " байтов."
              << std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));    
    print_class_size  (T_class());
    print_class_size  (std::complex<double>());
    print_class_size  (1);
    print_class_size  ('a');
    print_class_size  (0.0);
    print_class_size  (0.0L);
    print_class_size  (long long());
    print_class_size  ("Hello!");
    T_class t[100];
    print_class_size  (t);    
}
Jugger
0 / 0 / 0
Регистрация: 03.09.2008
Сообщений: 35
13.03.2011, 19:24  [ТС]     Как определить размер класса ? #3
Ясненько
Но вот непонятная штука

Вот мой класс

C++
1
2
3
4
5
6
7
8
9
10
11
class element {
 
    public : 
        element(int q){
            x=q;
            next=0;
        };
        int x;
        element* next;
        ~element();
    } ;
sizeof(element) дает 8
Но там же инт имеющий 16 бит + указатель + две функции

Добавлено через 7 минут
А, он в байтах возвращает
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
13.03.2011, 19:26     Как определить размер класса ? #4
Jugger,
1. Размер инта может зависеть от платформы.
2. В твоем случае размер инта и указателя по 4 байта.
3. Методы на размер никак не влияют.
Yandex
Объявления
13.03.2011, 19:26     Как определить размер класса ?
Ответ Создать тему
Опции темы

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