クラスの生成時にmemsetを使ってメンバ変数を初期化する場合

class A
{
int hoge_a[10];
char hoge_b[20];
:
:
public:
 A(){memset( this , 0 , sizeof(A));}
:
};

このような使い方は有りでしょうか?
さらにメンバにvirtual関数があった場合も使用しても問題ないのでしょうか?