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

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

Войти
Регистрация
Восстановить пароль
 
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
#1

Где храниться поле класса? - C++

27.01.2013, 21:55. Просмотров 353. Ответов 5
Метки нет (Все метки)

Имеется класс:
C++
1
2
3
4
5
class Foo
{
Man Man; 
Monstr * Monstr; 
}
В куче или стэке храниться элемент Man и Monstr для двух вариантов?
C++
1
2
Foo foo;// Первый вариант
Foo * foo = new Foo(); // Второй вариант
Для какого из вариантов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2013, 21:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Где храниться поле класса? (C++):

Создать базу из трех сотрудников, где будут храниться их имена - C++
суть задачи: нужно создать базу из трех сотрудников, где будут храниться их имена, з.п, должности, дата приема на работу. должность должна...

Только константное статическое поле НЕ МОЖЕТ быть поле членом класса ! - C++
class CCoords { static const float rate = 1.0f; // ОШИБКА !!! bool IsComputed; float x,y; POINT2D ...

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

В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО! - C++
Друзья! Почему так? #include <windows.h> #include <iostream> using namespace std; //Вот главный класс class A{ ...

Указатель на поле класса - C++
Доброго дня суток. Есть класс DataOfGroup, список экземпляров этого класса lst, begin() - итератор, установленный на начало списка lst,...

Поле класса const; ? - C++
Встретил следующий код в книге "С++. Стандартная библиотека. Николай Джосьютис" (привожу только интересующую его часть): class Person ...

5
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
27.01.2013, 21:58 #2
первый - стэк
второй - куча
1
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
27.01.2013, 22:17  [ТС] #3
I.M., Для обоих элементов (Monstr и Man)?
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.01.2013, 22:28 #4
да, для обоих
1
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,240
27.01.2013, 22:35 #5
Цитата Сообщение от vbloodv Посмотреть сообщение
Для обоих элементов (Monstr и Man)?
тебя видать смущает
Цитата Сообщение от vbloodv Посмотреть сообщение
Monstr * Monstr;
так это просто указатель

если написать так
C++
1
2
3
 Monstr * Monstr1;
Monstr  Monstr2;
Monstr1=&Monstr2;
То объект будет лежать на стеке
а если так
C++
1
2
 Monstr * Monstr1;
Monstr1=new  Monstr;
то объект будет лежать в куче
но и в том и в другом случае
указатель Monstr1 будет лежать на стеке

кстати называть объект (ну или указатель) именем класса дело неблагодарное
1
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
27.01.2013, 23:13  [ТС] #6
ValeryS, Спасибо, отлично понял. Нет, меня это не смущает просто через указатель хотел показать что выделение памяти для объект происходит динамически и волновал вопрос, что делать если поле класса в куче, а сам класс(объект конечно же) в стеке...
0
27.01.2013, 23:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2013, 23:13
Привет! Вот еще темы с ответами:

Изменить поле класса - C++
код большой и использует доп. библиотеки - постараюсь описать схематично(надеюсь будет понятно) есть класс А, есть класс B : А...

Вектор, как поле класса - C++
Здравствуйте. Есть задание написать свой класс, который можно использовать как стек. Так вот помещаемые данные хранить, по-моему, удобнее...

Передать поле класса в функцию - C++
Здравствуйте форумчане. Как передать поле класса в функцию с возможностью изменения значения этого поля? Ссылка на компиляцию:...

Класс как поле класса - C++
Нужно поместить класс внутри класса. Примерно так #include <iostream.h> #include <conio.h> // program.hpp class TPoint { ...


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

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

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