malloc是否创建类的新实例?
这个问题在这里已经有了答案:
编译器会将对成员函数的调用转换为对静态函数的调用,并暗示this
参数指向该对象。 这意味着对象的内容(有效或无效)与是否进行呼叫无关。
如果该方法是虚拟的,这将改变,因为vtable指针必须是有效的。 构造函数将初始化vtable指针。 malloc
不会调用构造函数,它甚至不知道构造函数是什么 - 它是C的剩余行李。
请注意,这不是标准规定的,而是通常如何实施的。
您可以访问分配但未初始化的内存,但无法对内容进行有效的假设。 成员函数独立存在的物体,它们只是调用this
指向未初始化的位置。