請考慮以下代碼。動態創建對象並將其memset設置爲0
class A
{
private :
int a;
public :
void function1()
{
cout<<"hello world"<<endl;
}
void function2()
{
cout<<"bye bye world"<<endl;
}
};
int main()
{
A *obj = new A();
memset(obj,0,sizeof(A));
obj->function1();
obj->function2();
delete obj;
return 0;
}
函數調用不應該失敗。當我嘗試運行此代碼時,它運行得非常好。 爲什麼memset對方法的地址沒有任何影響? 你能解釋一下發生了什麼。
函數不存儲在每個對象中。這將是一個巨大的空間浪費。 – chris
爲什麼要在構造的對象上調用memset()? – EJP