class OtherClass
{
...
};
class Test
{
OtherClass otherClass;
};
int main()
{
Test *pTest = new Test;
}
pTest
сочи към обект от тип Test
. otherClass
също ли е разпределено в купчина или в стека?
class OtherClass
{
...
};
class Test
{
OtherClass otherClass;
};
int main()
{
Test *pTest = new Test;
}
pTest
сочи към обект от тип Test
. otherClass
също ли е разпределено в купчина или в стека?
Test *pTest = new Test;
Създава Test
обект на Freestore(Heap) и всички членове на Test
също са на същото.
Така че Да.
Обърнете внимание, че технически стандартът никога не използва термините Heap или stack, но да, можете да ги приемете, защото почти всички реализации ги използват.
new
, обектът ще бъде създаден във freestore и указателят ви ще сочи към него.
- person Alok Save; 24.11.2012
Той е разпределен в купчината. Тъй като pDataMember
е член на данните с тип OtherClass
(не указател!), той е част от паметта, разпределена за обекта от клас Test
, следователно ще бъде разположен където и да се намира обектът Test
.
Може би не трябва да назовавате не-указател pDataMember
? Това е объркващо.