答案是三个,能解释一下吗?

若MyBag是一个类名,且有如下语句序列:
MyBag b1,*b2;
MyBag *b3=new MyBag;
MyBag b4=b1;
在正常执行上面的语句序列后,所建立的类对象的个数是( )

b1,b3,b4
b1是申明了一个对象,b4申明了一个类对象
b3是一个指针但是调用new在堆区请求了数据空间,也是一个类对象
b2不是对象,因为b2只是一个指针,没有申请空间,此时还是指向空地址