对象创建过程
问题
对象创建过程
我的回答
C++对象的创建过程其实挺复杂的,主要包括几个关键步骤:
首先是内存分配,系统会为对象分配足够的内存空间。如果是栈上创建对象,编译器会直接调整栈指针;如果是堆上通过new创建,则会调用operator new来分配内存。
接着是初始化阶段,这分为几个子步骤:先是基类的构造,然后是成员变量的初始化(按声明顺序),最后才执行派生类自己构造函数的函数体。这里需要特别注意初始化列表的重要性,它可以直接初始化成员而不是先默认构造再赋值,对于某些类型来说效率更高。
如果涉及到虚函数,还会设置虚函数表指针(vptr),指向对应的虚函数表。