In C code like such:
{
int i = 5;
/* ....... */
}
编译器将会通过将栈指针向下移动(对于向下生长的栈)一个int的大小,然后在那个内存位置上放置值为5的数据,来代替这段代码。
同样地,在C++代码中,如果创建了一个对象,编译器会做什么呢?例如:
class b
{
public :
int p;
virtual void fun();
};
main()
{
b obj;
}
编译器会为以上代码做什么?有人能解释一下内存何时被分配,虚拟表的内存何时被分配以及默认构造函数何时被调用吗?