那么该对象是在堆上创建的吗

那么该对象是在堆上创建的吗

本文介绍了如果我们创建类的对象而不在C ++中使用new,那么该对象是在堆上创建的吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,
1)我知道用new初始化的东西都在堆上.但是,如果我们在C ++中创建类的对象而不使用new的话,


MyClass obj();


1)在声明它的地方是堆栈还是堆?
2)它在有内存的地方初始化,堆栈还是堆?

Hello,
1) I know that things initialized with new are on heap. But If we create object of a class without using new in C++,


MyClass obj();


1)Where it is declared,stack or heap??
2) Where it has memory,initializes,stack or heap?

推荐答案

void afunction()
{
   MyClass *pMyClass=new MyClass();
}


指针是该函数(在堆栈上)的局部指针,但该类在堆上


The pointer is local to the function (on the stack) but the class is on the heap


void someFunction()
{
  MyClass obj; // object on the stack
}


这篇关于如果我们创建类的对象而不在C ++中使用new,那么该对象是在堆上创建的吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 06:54