类的成员函数在哪里分配内存?
堆栈框架是它的答案吗?
每当我们调用成员函数时,它会被分配吗?
就像每当我们使用一个对象调用一个成员函数时,它会在堆栈帧中分配,当函数到达它时返回语句,分配的堆栈帧会被释放?
类的成员函数在哪里分配内存?
堆栈框架是它的答案吗?
每当我们调用成员函数时,它会被分配吗?
就像每当我们使用一个对象调用一个成员函数时,它会在堆栈帧中分配,当函数到达它时返回语句,分配的堆栈帧会被释放?
类的成员函数在哪里分配内存?
函数数据的内存分配由实现定义。
堆栈框架是它的答案吗?
C++ 实现不需要使用堆栈结构。
局部变量的堆栈结构很方便,但不是必需的。
每当我们调用成员函数时,它会被分配吗?
执行进入函数时,可能会创建函数局部变量。不要求实现必须创建变量。变量可以存在于全局内存中,并在执行进入函数时进行初始化。
就像每当我们使用一个对象调用一个成员函数时,它会在堆栈帧中分配,当函数到达它时返回语句,分配的堆栈帧会被释放?
一种流行的实现是在堆栈上为局部变量分配空间。空间分配将涉及递增或递减堆栈指针。
当执行离开范围时,堆栈会相应地调整。
该实现允许使用寄存器,因此有可能没有分配内存并且堆栈没有更改。该实现可以在函数执行之前将寄存器压入堆栈,然后将它们弹出。
您的问题的答案是实现定义的。小型嵌入式系统可能会使用更多的寄存器或全局内存,而不是使用堆栈。有许多可能的数据结构可以使用并且仍然符合 C++ 语言标准。