#include<iostream>
#include<stdlib.h>
using namespace std;
class ex
{
int i;
public:
ex(int x){
i=x;
cout<<"\nconstructor";
}
void setval(int x)
{
i=x;
}
int geti(){return i;}
~ex()
{
cout<<"\ndestructor";
}
};
int main()
{
ex *ob;
ob=(ex*) malloc(sizeof(ex));
ob->setval(5);
cout<<ob->geti();
delete ob;
}
我原本以为上述代码会出现错误,但它却成功编译并显示输出结果
5
destructor
Process returned 0 (0x0) execution time : 0.270 s
我的问题是:
我能使用
malloc
为对象分配内存吗?malloc
如何为没有构造函数参数的类分配内存?我可以使用
malloc()
进行分配和delete
进行释放,或者使用new
进行分配和free()
进行释放吗?没有构造函数,析构函数如何被调用?