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

Размер объекта? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка с классами http://www.cyberforum.ru/cpp-beginners/thread776820.html
Здравствуйте, не могли бы вы мне помочь, дороги форумчане, ошибка связанная с динамикой здесь у меня. #include "stdafx.h" typedef enum{con,exp,log,pow,sin,cos,tan,cot,sec,csc,sinh,cosh,tanh,coth,sech,csch} simpleElementaryFunctions; typedef enum{add,sub,mul,div,lbr,rbr,nos} sign; class ElementaryFunctions { simpleElementaryFunctions Element; ElementaryFunctions *Argument; sign...
C++ Не пойму почему не компилирует Начал читать "Как програмировать на С++" Дейтелов Дошёл до главы "Введение в классы и объекты", Отделение интерфейса от реализации, переписал код в свой компилятор но выдает ошибку " undefined reference to `GradeBook::GradeBook(std::string)' " " undefined reference to `GradeBook::getCourseName()' " Dev C++ Portable. Вот код: //Определения элемент-функций GradeBook. Файл содержит //... http://www.cyberforum.ru/cpp-beginners/thread776808.html
Вроде-бы все просто, но путаюсь с константыми методами C++
В чем разница где поставить модификатор const const void Metod(); void Method()const; В каком случаем использовать один из их? Заранее спасибо.
Как написать фреймы? C++
Я хочу попробовать написать программу, чтобы она не просто была консольной, а имела фреймы. Можете подсказать, как их писать или киньте ссылочку, где об этом что-то написано. Добавлено через 3 минуты Работаю на VS 2012.
C++ автомат по размену монет http://www.cyberforum.ru/cpp-beginners/thread776709.html
задание звучит так : "Автомат размена монет. Реализовать три функции при помощи классов" т.к. на С++ последний раз я работал полтора года назад, то меня это задание поставило в затруднительное положение. если у кого есть какие идеи или может кто дать ссылку на более-менее подходящий исходник, буду очень благодарен
C++ Найти номер первого из столбцов матрицы, не содержащих ни одного отрицательного элемента. Ребята помагите составить программу)) Дана вещественная прямоугольная матрица A, размером nxm. Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента. буду очень благодарен)) подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
02.02.2013, 00:21     Размер объекта?
никакие системные байты не являются частью объекта.
размер объекта складывается из размера полей + (размер указателя) * (количество указателей на таблицы виртуальных функций если они есть) + может быть добавлено выравнивание. именно указатели на таблицы, а не сами таблицы. у указателей фиксированный размер. от количества виртуальных функций размер объекта не зависит. хоть одна, хоть сто. размер будет один. если их нет вообще, то тогда в объекте не будет указателя и конечно же размер его будет другим. так же размер не зависит от количества невиртуальных функций, от количества статических функций, от количества статических мемберов.
ну и по проверять это можно примерно так:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
 
class C0
{
    void f1() {}
    void f2() {}
    void f3() {}
    void f4() {}
    void f5() {}
    void f6() {}
    void f7() {}
};
 
class C1
{
    virtual void f1() {}
};
 
class C2
{
    virtual void f1() {}
    virtual void f2() {}
    virtual void f3() {}
    virtual void f4() {}
    virtual void f5() {}
    virtual void f6() {}
    virtual void f7() {}
    virtual void f8() {}
    virtual void f9() {}
};
 
class C3
{
    int i;
};
 
class C4
{
    int i;
    char ch;
};
 
class C5
{
    int i;
    char ch1;
    char ch2;
    char ch3;
    char ch4;
};
 
int main()
{
    std::cout << "sizeof(C0) = " << sizeof(C0) << std::endl;
    std::cout << "sizeof(C1) = " << sizeof(C1) << std::endl;
    std::cout << "sizeof(C2) = " << sizeof(C2) << std::endl;
    std::cout << "sizeof(C3) = " << sizeof(C3) << std::endl;
    std::cout << "sizeof(C4) = " << sizeof(C4) << std::endl;
    std::cout << "sizeof(C5) = " << sizeof(C5) << std::endl;
    return 0;
}
 
Текущее время: 18:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru