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

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

Войти
Регистрация
Восстановить пароль
 
Mr_vanDort
1 / 1 / 0
Регистрация: 14.11.2012
Сообщений: 10
#1

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

30.12.2012, 18:38. Просмотров 410. Ответов 1
Метки нет (Все метки)

Только что прочитал такую статью - http://devdoc.web-ide.ru/index.php/c...rtual_base.htm
И там написано "Создание объекта – это просто выделение блока памяти для данных этого класса и все! Соответственно, размер объекта полностью зависит только от количества и размера переменных, но не от методов."

И я ,может конечно не правильно подумал - и решил что такой класс должен весит 0
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
      public:
      A()
      {
                cout<<"Creat A\n";
                }
       ~A()
      {
          cout<<"Destroy A\n";
          }
      void print(){cout<<"Print A\n";}
 
          };
но ведь такого не может быть
A ob;
sizeof(ob) = 1. это как -то связано с указателем this?

а когда сделал функцию print() - virtual - то sizeof(ob) = 4
а это как-то связано с вшиваемым в конструктор указателем vpointer ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2012, 18:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Размер объекта (C++):

Размер объекта? - C++
При работе с объектами, совсем не знал забыл следующие моменты: Зависит ли размер объекта от количества в нем методов ? Будет ли...

Размер объекта в байтах - C++
Разъясните пожалуйста следующую ситуацию. Почему при таком class A { int x; int y; double a; }; и таком...

Размер объекта со всеми вложениями - C++
Как узнать сколько в оперативной памяти занимает обьект со всеми обьектами которые были в нём инициализированы?

Как узнать размер объекта класса? - C++
Здравствуйте, Дамы и Господа! Есть ли функция, передающая значение количества байт, отведенных в памяти для объекта класса? Например...

Ввести размер массива с клавиатуры и передать этот размер в конструктор - C++
Я создал массив объектов. И я хочу ввести размер этого массива с клавиатуры, и передать этот размер в конструктор, как мне это сделать? ...

Требуется ли при удалении объекта посредством delete указывать тип объекта? - C++
например, есть указателиvoid *p1; void *p2; есть VCL-объект TButton, есть самописный класс TMyClass; создаются объектыp1=new...

1
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
30.12.2012, 18:58 #2
Цитата Сообщение от Mr_vanDort Посмотреть сообщение
но ведь такого не может быть
Чего действительно не может быть, так это чтобы два разных объекта располагались по одному и тому же адресу, поэтому даже абсолютно пустой объект должен занимать хоть какое-то место. А то хорош был бы массивчик таких объектов... Это если он самостоятельный, конечно, а не член или предок другого класса/структуры.
Цитата Сообщение от Mr_vanDort Посмотреть сообщение
а это как-то связано с вшиваемым в конструктор указателем vpointer?
Непосредственно. С появлением виртуальной функции в составе объекта появился этот указатель, размером как раз в те самые 4 байта.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2012, 18:58
Привет! Вот еще темы с ответами:

Как правильно вызывать функцию объекта из другой функции того же объекта? - C++
Доброго дня и ночи, уважаемые программисты! Существует некоторая проблема, на которую я наткнулся, решая задачу по программированию из...

При возврате объекта из функции пишет, что для объекта не определен констуктор копирования - C++
Пишу шаблонный класс матриц. Делаю, значит, переопределение оператора + для двух матриц одного типа. Но компилятор ругается на эту функцию ...

Создание объекта в функции и возврат объекта из нее - C++
Не могу разобраться с ссылками. Возможно ли вернуть из функции объект созданный в стеке при этом копи конструктор публичный. ...

Вывод данных вложенного объекта из другого объекта - C++
Добрый День! Хочу в одном объекте вывести текст который находится во вложенном объекте. Помогите ,пожалуйста, понять в чем ошибка. ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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