質問です

継承したクラスの使い方がわかんなくなってきました
下のように、純粋仮想ベースクラスと、それを継承したものがあったとします

class CBasetest{
virtual int test() = 0;
};
class Ctest : public CBasetest{
int test(){return 0;}
};

で、気づいたらこんなソース書いてました

CBasetest *pBase = new Ctest;//1
delete pBase;//2

2の時にCBasetestのまま開放するのが正しいかどうかわかんなくなってしまって・・。
delete (CBasetest *)pBase;//3
みたいに、キャストしないといけないんですかね。正しい方法教えてください